微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 决定单片机中断函数时间设定值的事什么--新手

决定单片机中断函数时间设定值的事什么--新手

时间:10-02 整理:3721RD 点击:

main()
{
中断初始化……
TH=(656535-N)/256
TL=(656535-N)%256
……
}
void timer() interrupt 1
{
……
TH=(656535-N)/256
TL=(656535-N)%256
……
}
主函数与中断函数中时间值其什么作用?
为什么中断函数中TH、TL等要在主函数中重复一遍,规定这样吗?

中断


TH,TL是中断时间计数器的高八位和低八位,在计数时,往上加,加满后就产生中断.
那进入中断后,计数器里面的数已经不是原来的数了,所以要重新赋值.

谢谢。
追问一个:如果进入中断,计数器里面的数不是原来的数了结果会是怎样。

回复 cplusplusc 的帖子
不谢.
你可以点击我的回贴下面的"回复",这样我可以看到有你回复的提醒.不然我很难留意到你问题的.
给定时器赋值,就是想准确控制它间隔多长时间进一次中断,
你不给它赋值,它自己计满后,会变成零,然后重新开始计时.

回复 lirongqing 的帖子
:)很感谢

回复 cplusplusc 的帖子
非常感谢你的指教

void main()
{
aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;   
}

我想问说主程序的装值
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
到溢满的时间就是第一次aa=1的时间?

然后第二次计时就在定时
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;   
}
这里循环定时?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top