定时器0中断的问题

[复制链接]
 楼主| chen3bing 发表于 2010-11-8 15:15 | 显示全部楼层 |阅读模式
我的程序C51程序,定时器0原来好使,现在不好使了。
定时器0代码没变。
初始化如下:
TMOD=0X21;                       //初始化定时器
    TH0=0X3B;                  //送计数初值
    TL0=0XC0;
     EA=1;                             //开总中断
    ET0=1;   
    TR0=1;      
中断代码如下:
void timer0_int()   interrupt 1  using 1
{
   TR0=0;                      //定时器0停止计数
   TH0=0X3B;                   //重装初值
   TL0=0XC0;
   wdi=~wdi;                   //喂狗
   
   count1++;                     //计数器自加
   
   count2++;
   if(count1==100)
   {count1=0;                 //计数器1复位
    cnt++;
    ranking++;
   }
   if(count2==25)
   {count2=0;                  //计数器2复位
    sound++;
   }
   if(sound==2) sound=0;        //计数器3复位
   if(cnt==4) cnt=0;            //计数器4复位
   if(ranking==50) ranking=0;   //计数器5复位
   TR0=1;                       //定时器开始计数
}
只不过代码量大了。这也不应该影响中断呀!
请问高手,可能是哪里的问题?谢谢!
ayb_ice 发表于 2010-11-8 15:31 | 显示全部楼层
怎么影响,怎么个不好使
...
 楼主| chen3bing 发表于 2010-11-8 17:27 | 显示全部楼层
不进中断了。
ayb_ice 发表于 2010-11-8 17:29 | 显示全部楼层
调试一下,TR0=1后,定时器是否在运行
 楼主| chen3bing 发表于 2010-11-8 17:57 | 显示全部楼层
谢谢!我试过了,TH0和TL0的值都在变化。
strang 发表于 2010-11-8 18:43 | 显示全部楼层
如果定时器1不用的话,就不要打开。以免乱套、、、
 楼主| chen3bing 发表于 2010-11-8 18:52 | 显示全部楼层
定时器1用作串口通讯。
 楼主| chen3bing 发表于 2010-11-8 19:17 | 显示全部楼层
现在发现串口中断也不进了,所有中断都不进了。
 楼主| chen3bing 发表于 2010-11-8 19:23 | 显示全部楼层
我把原来备份的好的程序烧进去也不进中断了,难道硬件出问题了?
感觉又不太可能,我快崩溃了!
sim-happiness 发表于 2010-11-8 19:29 | 显示全部楼层
路过学习……
Txapp 发表于 2010-11-8 19:30 | 显示全部楼层
去掉 using 1 试试看
 楼主| chen3bing 发表于 2010-11-8 19:55 | 显示全部楼层
试了,不行。
ji_dan 发表于 2010-11-8 20:23 | 显示全部楼层
可能的确与硬件有关系,检查一下你的硬件吧!!
 楼主| chen3bing 发表于 2010-11-8 20:27 | 显示全部楼层
我又试了一下,在主循环前加了个while循环,做了个小测试,发现可以进中断!
可能是主循环有什么毛病,我正在查。
谢谢各位热心的帮助!
xieshenkui 发表于 2010-11-10 13:48 | 显示全部楼层
我遇到过,只要源代码在就好办
xieshenkui 发表于 2010-11-10 13:49 | 显示全部楼层
这情况是编译软件的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

2540

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部