问答

汇集网友智慧,解决技术难题

21ic问答首页 - 求助keilC51用定时中断问题

ID TMS 定时中断 keilc51 技术交流 单片机

求助keilC51用定时中断问题

jumpio2024-03-11
在定时中断中用一个全局变量tms来计时,然后在延时子程序中利用tms做延时,程序如下:u8 tms;
void  Delay(u8 ms);
void main(void)
{
        WTST = 0;                //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
        EAXSFR();                //扩展SFR(XFR)访问使能
        CKCON = 0;      //提高访问XRAM速度

        GPIO_config();
        Timer_config();
        EA = 1;
       Delay(10);
        while (1);
}
void Timer0_ISR_Handler (void) interrupt TMR0_VECTOR                //进中断时已经清除标志
{
        // TODO: 在此处添加用户代码
        ++tms;
}

void Delay(u8 ms)
{       
       tms=0;
     while(tms<ms);
}

仿真时发现程序死在Delay中,查看tms正常计时,也已超过设定的ms值,但就是无法跳出while(tms<ms)循环。请教该如何解决?


回答 +关注 9
10029人浏览 12人回答问题 分享 举报
12 个回答
12下一页

您需要登录后才可以回复 登录 | 注册