ATmega16 A/D的相關(guān)寄存器
位 7:6——REFS[1:0]:參考電壓選擇
通過(guò)這2位可以選擇參考電壓。如果在轉換過(guò)程中改變了它們的設置,只有等到當前轉換結束(ADCSRA寄存器的ADIF置位)之后改變才會(huì )起作用。如果在A(yíng)REF引腳上施加了外部參考電壓,內部參考電壓就不能被選用了。
REFS1
位 5——ADLAR:ADC轉換結果左對齊
ADLAR影響ADC轉換結果在A(yíng)DC數據寄存器中的存放形式。ADLAR置位時(shí)轉換結果為左對齊,否則為右對齊。ADLAR的改變將立即影響ADC數據寄存器的內容,不論是否有轉換正在進(jìn)行。
位4:0–MUX[4:0]:模擬通道與增益選擇位
通過(guò)這幾位的設置,可以對連接到ADC的模擬輸入進(jìn)行選擇。也可對差分通道增益進(jìn)行選擇。如果在轉換過(guò)程中改變這幾位的值,那么只有到轉換結束(ADCSRA寄存器的ADIF置位)后新的設置才有效。
MUX[4..0]
2.ADCSRA——ADC控制和狀態(tài)寄存器A
位7——ADEN:ADC使能
ADEN置位即啟動(dòng)ADC,否則ADC功能關(guān)閉。在轉換過(guò)程中關(guān)閉ADC將立即中止正在進(jìn)行的轉換。
位 6——ADSC:ADC開(kāi)始轉換
在單次轉換模式下,ADSC置位將啟動(dòng)一次ADC轉換。在連續轉換模式下,ADSC置位將啟動(dòng)首次轉換。第一次轉換(在A(yíng)DC啟動(dòng)之后置位ADSC,或者在使能ADC的同時(shí)置位ADSC)需要25個(gè)ADC時(shí)鐘周期,而不是正常情況下的13個(gè)。第一次轉換執行ADC初始化的工作。在轉換進(jìn)行過(guò)程中讀取ADSC的返回值為"1”,直到轉換結束。ADSC清零不產(chǎn)生任何動(dòng)作。
位5——ADATE:ADC自動(dòng)觸發(fā)使能
ADATE置位將啟動(dòng)ADC自動(dòng)觸發(fā)功能。觸發(fā)信號的上跳沿啟動(dòng)ADC轉換。觸發(fā)信號源通過(guò)SFIOR寄存器的ADC觸發(fā)信號源選擇位ADTS設置。
位4——ADIF:ADC中斷標志
在A(yíng)DC轉換結束,且數據寄存器被更新后,ADIF置位。如果ADIE及SREG中的全局中斷使能位I也置位,ADC轉換結束中斷服務(wù)程序即得以執行,同時(shí)ADIF硬件清零。此外,還可以通過(guò)向此標志寫(xiě)1來(lái)清ADIF。要注意的是,如果對ADCSRA進(jìn)行讀-修改-寫(xiě)操作,那么待處理的中斷會(huì )被禁止。這也適用于SBI及CBI指令。
位 3——ADIE:ADC中斷使能
若ADIE及SREG的位I置位,ADC轉換結束中斷即被使能。
位 2:0——ADPS[2:0]:ADC預分頻器選擇位
由這3位來(lái)確定XTAL與ADC輸入時(shí)鐘與CPU時(shí)鐘之間的分頻因子。
ADPS2
3.ADCL、ADCH——ADC數據寄存器
4.SFIOR——特殊功能IO寄存器
位 7:5–ADTS[2:0]:ADC自動(dòng)觸發(fā)源
若ADCSRA寄存器的ADATE置位,ADTS的值將確定觸發(fā)ADC轉換的觸發(fā)源;否則,ADTS的設置沒(méi)有意義。被選中的中斷標志在其上升沿觸發(fā)ADC轉換。從一個(gè)中斷標志清零的觸發(fā)源切換到中斷標志置位的觸發(fā)源會(huì )使觸發(fā)信號產(chǎn)生一個(gè)上升沿。如果此時(shí)ADCSRA寄存器的ADEN為1,ADC轉換即被啟動(dòng)。切換到連續運行模式(ADTS[2:0]=0)
時(shí),即使ADC中斷標志已經(jīng)置位也不會(huì )產(chǎn)生觸發(fā)事件。
ADTS2
評論