我在那本书中研究了 avr 计时器(Mazidi),其中在计时器章节中给出了一个程序,它说每当我们需要计算输入 TCNT0 的值时,我们应该这样计算。例如 8Mhz, 256 prescalar , 1 s delay
8 Mhz = .125 usec
256 x 0.125 = 32 usec
for 1 ms delay
1sec / 32usec = 31250 clock cycles = 0x7A12
so the value for TCNT0 is
1+FFFF-7A12 = 0x8255 //what this step means
此外,在轮询时,我们会为 1 寻找 TIFR 的第 0 位。当它变为 1 时,我们会停止计时器并停止时钟源,但我们为什么要这样做
TIFR = 0x1 //clears TIFR??
在书中写到它清除了 TIFR 。当该位已经为 1 时,这怎么可能,在其上写 1 表示清楚?