剛開始學的時候,8位的timer0和timer2用的比較熟練,timer1一直迷迷糊糊。于是找了一些書籍,好心人把原理圖翻譯成了中文,易懂推薦《AVR單片機菜鳥進階》沈添國主編 這是我好不容易從兩本書上找到的中英文的對照圖
這是我在課本上找的,共用寄存器部分的圖,學到這里就一下子通了
還有一個要注意的點就是:
timer1的時鐘源選擇是靠TCCR1B來控制的,例如A的工作方式啥的還是用TCCR1A來配置,但是時鐘源又得靠TCCR1B來進行配合。
(這里真的是有點奇葩)
現在那我自己的話語總結一下實際使用方法:
timer1和timer0/2的用法十分相似,主要區別在于兩個共有的寄存器,和timer1獨有的A,B兩個16位的,功能也有增加一個輸入捕獲。所以無論是常用的比較匹配還是溢出,只要對相應的A,B寄存器賦值就好H(高位),L(低位),具體賦值參考如下。然后就是上面紅字注意的時鐘源選擇部分了。剩下就是照著說明弄一些什么禁止,模式,使能之類的操作。
(本圖是使用ICCAVR編譯器的代碼生成器產生的部分代碼,并不完善)
|