有个概念不是很清楚

[复制链接]
2246|11
 楼主| guoyt 发表于 2011-1-3 11:44 | 显示全部楼层 |阅读模式
TIME0到底怎么工作的?
hanwe 发表于 2011-1-3 11:55 | 显示全部楼层
TIMER0在芯片上电后即开始工作啊
yufe 发表于 2011-1-3 12:13 | 显示全部楼层
理论上第一个TIMER0中断的时间是从0到你定时的时间之间的一个随机值
 楼主| guoyt 发表于 2011-1-3 12:31 | 显示全部楼层
中断响应和处理时,TL0和TH0重载会受影响吗?
yufe 发表于 2011-1-3 12:46 | 显示全部楼层
这个不会
 楼主| guoyt 发表于 2011-1-3 13:09 | 显示全部楼层
那当定时器0对应的IRQ(中断请求标志位)置1后,此时IE(中断使能)未打开,定时器0重载后是等待IE(中断使能)打开处理完中断开始递增计数,还是一直处于工作状态不断循环溢出重载
 楼主| guoyt 发表于 2011-1-3 13:10 | 显示全部楼层
与IRQ,IE没有关系?
yufe 发表于 2011-1-3 13:38 | 显示全部楼层
IRQ置1后,此时无论IE是否打开,定时器0会自动重载并继续计数.
 楼主| guoyt 发表于 2011-1-3 14:40 | 显示全部楼层
哦,明白了
刘前辈 发表于 2011-1-6 15:11 | 显示全部楼层
#8楼:
IRQ置1后,此时无论IE是否打开,定时器0会自动重载并继续计数.


中颖TIMER0 真有这么厉害?我怎么好像觉得16位定时器应用只有TIMER2才能自动重载,其它TIMER0,TIMER1都只能在溢出中断中用程序赋值加载,否则,T0/T1 达到FFFFH溢出后只能从0000开始计数而不会自动重载。——除非是作为8位波特率发生器使用才是真正自动重载,那时与溢出中断无关,必须关闭溢出中断。


刘前辈 发表于 2011-1-6 15:15 | 显示全部楼层
2楼
TIMER0在芯片上电后即开始工作啊


上电后,TR0=0,它怎么开始工作?

/
刘前辈 发表于 2011-1-7 09:51 | 显示全部楼层
本帖最后由 刘前辈 于 2011-1-7 09:55 编辑
3#
理论上第一个TIMER0中断的时间是从0到你定时的时间之间的一个随机值。


呵,51的计数器是正向++的,加到0xFFFF+1,溢出中断;所以,理论上第一个TIMER0中断的时间是从你定时的时间(负值)++到0的精确确定时间。——Intel 没那么差。

举个例子,如果你需要T0定时20ms,那么赋值语句伪码就是T0= - 20000; //12M晶振时。
打开T0,计数器从 - 20000开始计数,直到0溢出中断;这个过程的时间是确定的。不是随机的。

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

本版积分规则

1018

主题

9067

帖子

3

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