关于单片机定时器C语言编程,这段程序看不懂

2025-03-09 22:34:03
推荐回答(4个)
回答1:

因为每个CLK后TL0是向上加1的,并且在FFFF变成0000的时候才中断,所以正式的写法应该是(0x10000-SYSCLK)/1000,而对于一个两字节宽的数,0x10000-SYSCLK就等于~SYSCLK,但~SYSCLK更省代码和时间

回答2:

TH0和TL0是这样计算的:TH0 = (65536-(SYSCLK/1000)) >> 8;
TL0 =65536 -(SYSCLK/1000);
负号:省去65536,因为负数在单片机中以补码形式存在。
补码:SYSCLK/1000进行反码(变为16位二进制,每位取反),再加1

回答3:

分析这个问题必须把SYSCLK、TH0、TL0的定义贴出来。

回答4:

baidu