1
我正在學習計時器章節中給出的一個程序中的avr定時器(Mazidi),它說當我們需要計算進入TCNT0內部的值時,我們應該這樣計算。例如爲8MHz,256分頻器,1秒的延遲AVR定時器編程
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
此外,當輪詢我們尋找TIFRs第0位爲1,當它變成1我們停止計時器和停止的時鐘源,但爲什麼我們做這個
TIFR = 0x1 //clears TIFR??
在書中它寫了它清除TIFR。當這個位已經是1時,這是如何實現的,在它上面寫1清楚了?
通常您會在位/寄存器描述中看到類似於W1C的內容。 「寫一個清除」不取消註銷中斷標誌寄存器使用清除寫入清除(通常是讀取標誌寄存器,對標誌進行操作然後寫入讀取的內容清除已知的位,再次讀取其他標誌設置,處理這些,寫回你的東西,等等。 –