标题:
移位为什么出问题?????????急!!!!!!!!
[打印本页]
作者:
xingku77
时间:
2008-5-16 11:17
标题:
移位为什么出问题?????????急!!!!!!!!
我用定时器中断产生流水灯效果,按下PB1,流水灯从左到右亮,按下PB2效果相反 怎么跑不起来呢????????????
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
/* DZ60 initialization functions */
#include "DZ60_init.h"
/* TPM1 overflow interrupt service routine */
void interrupt TPM1_ISR(void);
/* I/O macros */
#define LED PTDD /* User LEDs */
/*#define LED2 PTDD_PTDD0 */
#define PB1 PTBD_PTBD0 /* Push buttons */
#define PB2 PTBD_PTBD1
#define ON 0
#define OFF 1
/*****************************************************************************/
void main(void)
{
MCG_Init(); /* Clock Generator initialization */
GPIO_Init(); /* GPIO configuration */
LED = OFF; /* LEDs initial state */
/* LED2 = OFF; */
TPM1_Init(); /* Real time counter initialization */
EnableInterrupts; /* Enable interrupts */
while(1)
{
}
}
/*****************************************************************************/
/**
* \brief TPM1 overflow interrupt service routine
* \author B05114
*/
void interrupt 11 TPM1_ISR(void)
{
static char PB_status = 0;
(void)TPM1SC; /* Read TPM status register */
TPM1SC_TOF = 0; /* and clear interrupt flag */
if (PB1 == 0) PB_status = 1; /* Update status */
if (PB2 == 0) PB_status = 2;
/* if (PB2 == 1||PB1 == 1) PB_status = 3; */
switch (PB_status)
{ case 1:
LED <<1; /* Toggle selected LED */
/*LED2 = OFF;*/ /* and turn-off opposite LED */
break;
case 2:
LED>>1; /* Toggle selected LED */
/* LED2 ^= 1;*/ /* and turn-off opposite LED */
break;
/* case 3:
LED = OFF;
break; */
}
}
作者:
康桥人
时间:
2008-5-16 18:55
还是把整个project打包传上来吧!
作者:
mizhuan
时间:
2008-5-17 10:44
先确定下有没有进入中断,如果有进,那中断时间是不是太短,以至于来不急看到亮就灭了[em07]
作者:
xingku77
时间:
2008-5-17 16:17
定时100ms,应该够用,是不是移位指令不对啊???????????????
作者:
xingku77
时间:
2008-5-17 16:18
麻烦版主看看,辛苦可..................呵呵
作者:
xingku77
时间:
2008-5-17 16:19
麻烦版主看看,辛苦可..................呵呵
作者:
xingku77
时间:
2008-5-17 16:28
标题:
怎么上传啊?我上传了,并提示上传成功,我怎么看不到传到什么地方了???????
怎么上传啊?我上传了,并提示上传成功,我怎么看不到传到什么地方了????????????
作者:
xingku77
时间:
2008-5-17 16:37
邮箱?我给你发过去吧,麻烦了 ,呵呵
作者:
xingku77
时间:
2008-5-17 16:58
我又改了下程序,可是效果是灯逐个变亮,结果8个led全亮了后就保持了................我感觉是PTDD=PTDD<<1; 出问题了,不能循环移位,如果循环移位,该怎么做啊??????????????????????还有就是在移位方面汇编做的比较好,用嵌入汇编怎么样啊?????????????????[em06]
作者:
xingku77
时间:
2008-5-17 16:58
我又改了下程序,可是效果是灯逐个变亮,结果8个led全亮了后就保持了................我感觉是PTDD=PTDD<<1; 出问题了,不能循环移位,如果循环移位,该怎么做啊??????????????????????还有就是在移位方面汇编做的比较好,用嵌入汇编怎么样啊?????????????????[em06]
作者:
xingku77
时间:
2008-5-17 17:07
ptdd=255;
ptdd<<1;
移位7次后是不是变为00000000了?如果要变为11111110、11111101、11111011、~~~~~~~~01111111这样的效果,该怎么写啊??????????????
作者:
xingku77
时间:
2008-5-17 17:07
标题:
好啊
ptdd=255;
ptdd<<1;
移位7次后是不是变为00000000了?如果要变为11111110、11111101、11111011、~~~~~~~~01111111这样的效果,该怎么写啊??????????????
作者:
xingku77
时间:
2008-5-17 17:09
标题:
好啊
ptdd=255;
ptdd<<1;
移位7次后是不是变为00000000了?如果要变为11111110、11111101、11111011、~~~~~~~~01111111这样的效果,该怎么写啊??????????????
作者:
strongchen
时间:
2008-5-20 10:18
将1连续左移并取反。
作者:
xingku77
时间:
2008-5-21 17:18
问题解决了
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0