刚才看一网友做的频率计有句代码不解

laofuzi   2010-6-30 01:11 楼主
if(flag_1s==1)
{
tmp=T0count*65536+TH0*256+TL0
}

一秒计数的脉冲为何是tmp=T0count*65536+TH0*256+TL0,不是每次中断都T0count++?

回复评论 (6)

tmp=T0count*65536+TH0*256+TL0 这句话的意思是tmp为32位数,其中高Word存T0count,低Word中的高字节存TH0,低字节存TL0。这个是作者自己定义,估计这样分配是有其目的吧。
点赞  2010-6-30 08:23
每次中断,脉冲数增加65536,但T0count只增1.达到1秒的时候,要把所有脉冲都算进去.
点赞  2010-6-30 08:24
不这样的话只能计2^16个脉冲了。
点赞  2010-6-30 11:46
引用: 引用 2 楼 great_bug 的回复:
每次中断,脉冲数增加65536,但T0count只增1.达到1秒的时候,要把所有脉冲都算进去.


用T1来定时1秒中,T0来计数外部脉冲,每来一个脉冲,T0都会中断计数的,为何脉冲数增加65536呢?
点赞  2010-6-30 20:59
引用: 引用 3 楼 jennyvenus 的回复:
不这样的话只能计2^16个脉冲了。


一秒钟T0会中断计数N次的,为何就成了2^16个脉冲呢?
点赞  2010-6-30 21:02
我的天呐,我把这个T0当外部中断了,只有计数到65535才会溢出中断!
点赞  2010-7-1 01:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复