首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]定时中断程序无法向下运行??

[求助]定时中断程序无法向下运行??

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

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

#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语句就能正常执行了,真不知怎么办,请大家帮忙指点一下。

那一定是while(!ATD0STAT1_CCF2)下面的语句中有对waittime进行操作的指令。仔细检查一下吧。
海纳百川  有容乃大
返回列表