打印

定时器中断的问题

[复制链接]
1985|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddddd6666|  楼主 | 2013-1-19 09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2013-1-19 09:18 | 只看该作者
将频率降低一年都没有问题

明显用法的问题,长定时都要通过软件扩展的

使用特权

评论回复
板凳
ddddd6666|  楼主 | 2013-1-19 09:38 | 只看该作者
本帖最后由 ddddd6666 于 2013-1-19 09:40 编辑

#include<reg51.h>
#define uchar unsigned charuchar times,sec,min;
sbit LED=P1.0;
void t0_isr() interrupt 1
{   TH0=(65536-50000)/256;   
TL0=(65536-50000)%256;   
times++;   
if(times>=20)   
{    times=0;   
sec++;   
if(sec>59)      
{        sec=0;   
    min++;        }   
}
}
main()
{    TMOD=0x01;   
TH0=(65536-50000)/256;  
  TL0=(65536-50000)%256;   
times=0;   
sec=0;  
  min=0;   
TR0=1;
   ET0=1;  
  EA=1;   
while(1)   
{    if(min==20)TR0=0;    LED=0;    }
}

使用特权

评论回复
地板
ddddd6666|  楼主 | 2013-1-19 09:42 | 只看该作者
单片机是89c52的,晶振是12M的。可是经常跑飞。网上说要加看门狗。我不知道怎样加。

使用特权

评论回复
5
NE5532| | 2013-1-19 10:02 | 只看该作者
ddddd6666 发表于 2013-1-19 09:42
单片机是89c52的,晶振是12M的。可是经常跑飞。网上说要加看门狗。我不知道怎样加。 ...

你应该去找程序跑飞的原因,我曾经说过,狗是还魂丹,不死是金钟罩,你要哪样?跑飞可定是自己在软硬件上设计乱整造成的。

使用特权

评论回复
6
ayb_ice| | 2013-1-19 10:10 | 只看该作者
把药当饭吃死的更快

使用特权

评论回复
7
江枫渔火| | 2013-1-19 16:17 | 只看该作者
前后讨论的莫斯不是一会是~
时间越长误差越大哦,定时器是不能定时那么久的~但可以用软件累加~如果你下定1分钟,那你定时器每1s加1,加到60,就约1分钟咯~误差就不用说了,加也要费时的。

使用特权

评论回复
8
dzswise| | 2013-1-19 17:53 | 只看该作者
还是检查自己写的程序,和用的软件。

使用特权

评论回复
9
21201306| | 2013-1-19 22:48 | 只看该作者
软件应该可以实现的·

使用特权

评论回复
10
ddddd6666|  楼主 | 2013-1-19 23:27 | 只看该作者
还是主程序里面的while使用不当造成的。有中断的地方不要使用while和for一类循环语句,尤其是while。不管是条件的还是死循环,加入中断程序中只能执行while里面的语句,有时复位不管用。但要说明在主程序里面while(1);等待的语句是要的。
顺便说一句用定时器中断计时20分钟是很准的。不用软件扩展,把变量命名为:unsigned long int 定时器初值为50毫秒,当变量加到24000就是20分钟了。

使用特权

评论回复
11
NE5532| | 2013-1-20 10:14 | 只看该作者
ddddd6666 发表于 2013-1-19 23:27
还是主程序里面的while使用不当造成的。有中断的地方不要使用while和for一类循环语句,尤其是while。不管是 ...

这个观点也太片面了吧……………………

使用特权

评论回复
12
T_X_T| | 2013-1-20 11:02 | 只看该作者
经常跑飞就是问题

使用特权

评论回复
13
ddddd6666|  楼主 | 2013-1-20 11:37 | 只看该作者
中断里不用while就正常了。

使用特权

评论回复
14
NE5532| | 2013-1-20 11:40 | 只看该作者
ddddd6666 发表于 2013-1-20 11:37
中断里不用while就正常了。

这是问题没找到,乱栽。

使用特权

评论回复
15
受不了了| | 2013-1-20 11:42 | 只看该作者
程序错误就程序错误,别拿狗屁专家的单片机会跑飞来开脱,哥从来就不相信单片机会跑飞,更不相信啥狗能把单片机救回来

使用特权

评论回复
16
受不了了| | 2013-1-20 11:58 | 只看该作者
以前还有好事者给跑飞设计了陷阱,让程序掉进去,真是闲得蛋疼

使用特权

评论回复
17
lirunze| | 2013-1-20 13:21 | 只看该作者
程序跑飞肯定是程序问题啊

使用特权

评论回复
18
zhl100| | 2013-1-20 13:30 | 只看该作者
ayb_ice 发表于 2013-1-19 10:10
把药当饭吃死的更快

这个经典  哈哈  还是找到问比较好 比如你的编译器的优化等级,软硬件配合。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

93

帖子

1

粉丝