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