C语言中求解定时器初值问题!!!

这是求解的方法,刚接触C语言,希望高手指点一下!帮忙解析一下

th = (65536 - 10000/1.085) / 256; //给定时器装初值
tl = (65536 - 10000/1.085) - th * 256;
那下面的是怎么回事哦?

1.085说明是11.0592M的晶振

12/11.0592=1.085

10000是延时时间 也就是10ms

/ 256表示取高8位

由于是靠溢出工作 所以要给一个满数据类型 65536=2的16次方

tl = (65536 - 10000/1.085) - th * 256; 是取低8位

也可以学成tl = (65536 - 10000/1.085) %256;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-08
你这是单片机的C语言吧,那个65536是2的16次方,256是2的8次方,初值的算法是:定时器最大能定时的值减去要定时的值就是初值。
相似回答