Board logo

标题: [求助]定时中断程序无法向下运行?? [打印本页]

作者: xhljgcxylp    时间: 2008-6-26 18:55     标题: [求助]定时中断程序无法向下运行??

请大家帮我分析一下下面这段程序:

//*********定时器溢出中断模块******************//

#pragma CODE_SEG NON_BANKED
#pragma TRAP_PROC
void interrupt Timer (void){

TFLG1_C7F=1; //通道7发生中断
waittime++;


if((0<waittime)&&(waittime<=1800)){
e=0;
PORTB=0xfe;} //以1A充电30min
else if((1800<waittime)&&(waittime<=9000)){
e=1;
PORTB=0xfd;} //再以700mA充两个小时
else if((9000<waittime)&&(waittime<14400)){
e=2;
PORTB=0xfc;}
else{ //四小时后停止充电
PTS=0X00;
PWMDTY3=0;}

while(!ATD0STAT1_CCF2); //等待转换结束
AD_GetValue(); //读取电流转换结果
u1=ADValue0*(5.0/255.0);
I=100.0/98.0*u1-2.0612244898;
w1=I*100;
m1=w1/100;
h=w1%100;
m2=h/10;
m3=h%10; //用数码管显示电流值
}

每次运行时,无论waittime等于多少,它只执行第一个if语句,但若去掉while(!ATD0STAT1_CCF2)下面的语句,if语句就能正常执行了,真不知怎么办,请大家帮忙指点一下。


作者: strongchen    时间: 2008-6-27 17:19

那一定是while(!ATD0STAT1_CCF2)下面的语句中有对waittime进行操作的指令。仔细检查一下吧。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0