应该是65536减去定时脉冲个数
16位
计数器,最大可写入65535 若定时1US(假设频率是12M),即来一个脉冲就溢出了,就该写入65535 刚好65536-1=65535
(65536-x) /256是正确的 因既然要用定时器,定时时间不可能是0,所以 (65536-x) /256结果不会是256 小于256的数都是可以装入的 对于TL0同样不会是256,因256的倍数除256余数是0
其实 不管是65535还65536对TH0写入的结果是一样的
但对于TL0(或整个计数器来说)理论上有一个脉冲的差别,若定时1US的话,写入65535或65534,都不会是准确的
假设写入65535,定时器一打开,脉冲立即来到,可能不到1US,,写入65534,需两个脉冲才会溢出 时间肯定大于1US
用这种方法来实现这么小的定时,肯定是不准确的 还有中断响应时间,主程序响应时间都要考虑
而对于长时间定时,这个误差又可以忽略的
要想减小误差,就要提高
晶振或系统时钟的频率,当定时脉冲个数多时,就不必纠结这一个脉冲的误差了,同时中断响应时间和中断程序处理的时间也减小了,大多数情况下是可忽略的