微控制器原理及應(yīng)用-基于TI C2000實(shí)時(shí)微控制器 課件 第10章-ADC模塊_第1頁
微控制器原理及應(yīng)用-基于TI C2000實(shí)時(shí)微控制器 課件 第10章-ADC模塊_第2頁
微控制器原理及應(yīng)用-基于TI C2000實(shí)時(shí)微控制器 課件 第10章-ADC模塊_第3頁
微控制器原理及應(yīng)用-基于TI C2000實(shí)時(shí)微控制器 課件 第10章-ADC模塊_第4頁
微控制器原理及應(yīng)用-基于TI C2000實(shí)時(shí)微控制器 課件 第10章-ADC模塊_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

微控制器原理及應(yīng)用

PrincipleAndApplicationOfMicrocontroller

第十章ADC概述1TMS320F28027的ADC2實(shí)訓(xùn)案例---“模擬數(shù)字兩個(gè)世界”3231.什么是ADC

模擬數(shù)字轉(zhuǎn)換器(AnalogtoDigitalConverter,ADC),也稱模數(shù)轉(zhuǎn)換器,是將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的電子器件。它提供微控制器與現(xiàn)實(shí)模擬世界的連接通道。因?yàn)镃PU只能處理數(shù)字量,所以需要把外部待測(cè)量的模擬量轉(zhuǎn)換為數(shù)字量,CPU才能進(jìn)行處理。10.1ADC概述410.1.1ADC轉(zhuǎn)換步驟 10.1.2ADC關(guān)鍵技術(shù)指標(biāo) 10.1.3ADC的幾種主要類型 10.1.4ADC的一般工作流程 10.1.5ADC應(yīng)用的注意事項(xiàng)10.1ADC概述10.1.1ADC轉(zhuǎn)換步驟510.1ADC的基礎(chǔ)知識(shí)下圖為典型的實(shí)時(shí)閉環(huán)控制系統(tǒng)框圖,輸出量為待測(cè)量的電壓、電流、溫度、壓力、流量、速度等物理量,這些物理量先經(jīng)過傳感器變換為電信號(hào),再調(diào)制成符合ADC模塊輸入電壓范圍的電壓模擬量,最后送給ADC模塊轉(zhuǎn)換為數(shù)字量,實(shí)時(shí)控制系統(tǒng)可以對(duì)該數(shù)字量進(jìn)行處理,用于顯示或控制。6采樣保持:采樣是將隨時(shí)間變化的模擬量轉(zhuǎn)換為在時(shí)間上離散的模擬量,保持則將所采樣的模擬信號(hào)值保持一段時(shí)間,以使得后續(xù)的量化編碼過程中信號(hào)值不發(fā)生變化。下圖為采樣保持電路。ADC轉(zhuǎn)換時(shí),輸入的模擬信號(hào)在時(shí)間上是連續(xù)的,而輸出的數(shù)字信號(hào)是離散的。將連續(xù)的模擬量轉(zhuǎn)換為離散的數(shù)字量通常要經(jīng)過3個(gè)步驟:采樣保持、量化、編碼。10.1.1ADC轉(zhuǎn)換步驟72.

量化:對(duì)模擬信號(hào)進(jìn)行采樣保持后,得到一個(gè)時(shí)間上離散的脈沖信號(hào)序列,但每個(gè)脈沖的幅度仍然是連續(xù)的,必須對(duì)采樣后每個(gè)脈沖的幅度進(jìn)行離散化處理。如圖所示,處理方法是用指定的最小單位將模擬量劃分為若干個(gè)(通常是2n個(gè))區(qū)間,這個(gè)最小單位所對(duì)應(yīng)的模擬量叫做量化單位。將采樣保持電路輸出的電平轉(zhuǎn)換為量化單位的整數(shù)倍的過程稱為量化。3.編碼:把量化的結(jié)果用二進(jìn)制表示出來叫做編碼。編碼長度常用的有8位、10位、12位和24位。這個(gè)二進(jìn)制位數(shù)也就是ADC轉(zhuǎn)換結(jié)果的數(shù)據(jù)長度。10.1.1ADC轉(zhuǎn)換步驟10.1.2ADC主要技術(shù)指標(biāo)8ADC的主要性能參數(shù)有量程、分辨率、精度、轉(zhuǎn)換時(shí)間、量化誤差、偏移誤差等。除此之外,其他指標(biāo)還有:絕對(duì)精度、相對(duì)精度、微分非線性、單調(diào)性和無錯(cuò)碼、總諧波失真和積分非線性等等。1.量程(FullScaleRange,F(xiàn)SR):量程是指ADC所能轉(zhuǎn)換的模擬輸入電壓的范圍,分為單極性和雙極性兩種類型。例如,單極性的量程為0~+3.3V、0~+5V等;雙極性的量程為-5V~+5V、-12V~+12V等。2.量化誤差(QuantizationError):量化時(shí)需要把電平轉(zhuǎn)換為量化單位的整數(shù)倍,因?yàn)槟M電壓是連續(xù)的,它不一定能被量化單位整除,因而不可避免地會(huì)存在誤差。AD分辨率越高,量化誤差越小。一般是1個(gè)或0.5個(gè)最小數(shù)字量的模擬變化量,表示為1LSB或0.5LSB(1LSB=Vref/2n)。10.1.2ADC主要技術(shù)指標(biāo)93.分辨率(Resolution):指ADC能分辨的最小模擬輸入量。理論上來講,n位輸出的ADC能區(qū)分2n個(gè)不同等級(jí)的輸入模擬電壓,能區(qū)分輸入電壓的最小值為滿量程輸入的1/2n。在最大輸入電壓一定時(shí),輸出位數(shù)越多,量化單位越小,分辨率越高。所以,常以數(shù)字信號(hào)的位數(shù)來表示分辨率。4.精度(Accuracy):精度是指對(duì)于ADC的數(shù)字輸出(二進(jìn)制代碼),其實(shí)際需要的模擬輸入值與理論上要求的模擬輸入值之差。精度與分辨率是兩個(gè)不同的概念,對(duì)于一個(gè)ADC來說,即使它的分辨率很高,也有可能由于線性度、溫度漂移等原因,導(dǎo)致其精度不高。影響ADC精度的因素除了前面講過的量化誤差以外,還有非線性誤差、零點(diǎn)漂移誤差和增益誤差等,精度會(huì)受到這些誤差的共同影響。10.1.2ADC主要技術(shù)指標(biāo)105.轉(zhuǎn)換時(shí)間(Conversiontime):ADC完成一次AD轉(zhuǎn)換所需要的時(shí)間,是指從啟動(dòng)ADC開始到獲得相應(yīng)數(shù)據(jù)所需要的時(shí)間。不同類型的AD轉(zhuǎn)換器有不同的轉(zhuǎn)換時(shí)間,從毫秒級(jí)到納秒級(jí)。一般來講,ADC的分辨率越高,轉(zhuǎn)換時(shí)間就越長。兩者相互制約,需要綜合考慮。6.偏移誤差(OffsetError):模擬量輸入信號(hào)為零時(shí),數(shù)字量輸出不為零的值。7.增益誤差(GainError):滿刻度輸出時(shí)對(duì)應(yīng)的模擬輸入量與理想的模擬輸入量之差。8.線性度(Linearity):實(shí)際轉(zhuǎn)換器的轉(zhuǎn)移函數(shù)與理想直線的最大偏移。10.1.3ADC主要類型111.逐次逼近型逐次逼近型ADC屬于直接式ADC,其原理可理解為將輸入模擬量逐次與UREF/2、UREF/4、UREF/8、…、UREF/2N-1作比較,模擬量大于比較值取1(并減去比較值),否則取0。逐次逼近型ADC轉(zhuǎn)換精度高,速度較快,價(jià)格適中,是目前種類最多、應(yīng)用最廣的AD轉(zhuǎn)換器,典型的8位逐次逼近型AD芯片有ADC0809。2.積分型ADC積分型ADC是一種間接式ADC,其原理是將輸入模擬量和基準(zhǔn)量通過積分器積分,轉(zhuǎn)換為時(shí)間,再對(duì)時(shí)間計(jì)數(shù),計(jì)數(shù)值即為數(shù)字量。優(yōu)點(diǎn)是轉(zhuǎn)換精度高,缺點(diǎn)是轉(zhuǎn)換時(shí)間較長,一般要40~50ms,積分型ADC主要應(yīng)用于低速、精密測(cè)量等領(lǐng)域,且成本較低,多用于數(shù)字萬用表中。典型芯片有MC14433和ICL7109。123.并行比較型ADC并行比較型ADC的主要原理是將參考電壓分為2N-1個(gè)等級(jí)(對(duì)于N位的ADC),通過2N-1個(gè)比較器和輸入模擬電壓進(jìn)行比較,比較器的輸出狀態(tài)由觸發(fā)器存儲(chǔ),經(jīng)編碼器編碼,得到數(shù)字量輸出。并行比較型ADC的主要特點(diǎn)是速度快,采樣速率最高能達(dá)到1GSPS以上,但其分辨率不高。4.壓頻變換型ADC壓頻變換型ADC是一種間接式ADC,其原理是將模擬量轉(zhuǎn)換為頻率信號(hào),再對(duì)頻率信號(hào)計(jì)數(shù),轉(zhuǎn)換為數(shù)字量。其優(yōu)點(diǎn)是精度高,功耗較低,抗干擾能力強(qiáng),便于長距離傳送,但轉(zhuǎn)換速度較低。10.1.3ADC主要類型135.∑-Δ型ADC∑-Δ型ADC又稱為過采樣型ADC,是目前分辨率最高的ADC。它主要由采樣/保持電路、模擬低通濾波器、DAC及數(shù)字濾波器構(gòu)成,在此ADC中,大多數(shù)的模塊都是由數(shù)字電路搭建,一些噪聲對(duì)其的影響很小,不需要特別的處理和調(diào)試,就可以達(dá)到很高的分辨率。典型的∑-Δ型AD芯片有ADS1210。6.流水線型ADC流水線型ADC是一種新興的ADC結(jié)構(gòu),其原理是將多級(jí)比較網(wǎng)絡(luò)級(jí)聯(lián)在一起,每一級(jí)得到一位數(shù)字碼。如果需要的是n位數(shù)字碼,則需要比較n次。每次輸入的信號(hào)必須從頭傳到尾才算完成了一次量化編碼。其優(yōu)點(diǎn)是高速、高精度,低功耗,芯片面積小,同時(shí)具有優(yōu)異的動(dòng)態(tài)特性。主要應(yīng)用在電話、傳真、衛(wèi)星、數(shù)據(jù)通信等通訊系統(tǒng)。10.1.3ADC主要類型10.1.4ADC工作流程采樣通道的選擇:ADC模塊內(nèi)部通過多路選擇器選擇相應(yīng)的AD通道,AD通道與采樣保持電路相連,等待ADC轉(zhuǎn)換。啟動(dòng)ADC轉(zhuǎn)換:啟動(dòng)ADC轉(zhuǎn)換后,會(huì)依次經(jīng)過采樣保持、量化和編碼三個(gè)過程,將輸入的模擬量轉(zhuǎn)換為數(shù)字量。等待轉(zhuǎn)換結(jié)束:轉(zhuǎn)換結(jié)束后,數(shù)字量保存在ADC結(jié)果寄存器中。通過查詢或中斷方式獲取ADC采樣結(jié)果。ADC采樣結(jié)果的處理:MCU通過讀取ADC結(jié)果寄存器的值來獲取ADC采樣結(jié)果,經(jīng)過處理后用于顯示或控制。1410.1.5ADC應(yīng)用注意事項(xiàng)參考電壓的選擇。對(duì)要求不高的場(chǎng)合,一般采用內(nèi)部參考電平。對(duì)于需要高精度的采樣,推薦使用外部高精準(zhǔn)參考電壓。板上注意模擬電源和數(shù)字電源,以及模擬地和數(shù)字地要分開,減少耦合噪聲影響。在ADC輸入端,通常加入一個(gè)RC低通濾波電路,來濾除高頻噪聲造成的干擾。ADC輸入電平需要在ADC有效采樣范圍內(nèi),否則轉(zhuǎn)換結(jié)果不會(huì)變化,當(dāng)輸入電平過大時(shí),有可能損壞AD模塊。ADC應(yīng)用時(shí)必須滿足采樣定理:fs≥2fmax,fs為采樣頻率,fmax為輸入信號(hào)的最高頻率的分量頻率(具體為對(duì)信號(hào)傅里葉分解之后的最高諧波頻率)。151610.2.1概述10.2.2ADC模塊的內(nèi)部結(jié)構(gòu)10.2.3ADC功能描述10.2TMS320F28027的ADC17請(qǐng)根據(jù)ADC內(nèi)部框圖,畫出ADC通道A0-B、ADC觸發(fā)信號(hào)、SOC0-16、EOC0-16、ADCRESULT0-16的關(guān)系。并說明采用內(nèi)部電壓基準(zhǔn),EPWM1觸發(fā)SOC0進(jìn)行A1通道ADC轉(zhuǎn)換的工作流程。作答主觀題50分10.2.1ADC概述F28027有13個(gè)ADC引腳可以與外部模擬量相連,分為兩組,包括ADCINA(ADCINA7、ADCINA6、ADCINA4、ADCINA3、ADCINA2、ADCINA1、ADCINA0等7個(gè)引腳)和ADCINB(ADCINB7、ADCINB6、ADCINB4、ADCINB3、ADCINB2、ADCINB1等6個(gè)引腳)。在芯片內(nèi)部,內(nèi)置溫度傳感器占用A5輸入,參考電壓VREFLO占用B5輸入,ADCINA5、ADCINB5和ADCINB0沒有外接引腳。F28027的ADC內(nèi)核包含一個(gè)12位轉(zhuǎn)換器,轉(zhuǎn)換器為部分逐次逼近型、部分流水線型。兩路采樣保持電路可同步采樣(有些應(yīng)用系統(tǒng)必須同時(shí)對(duì)兩路模擬信號(hào)進(jìn)行同步采樣,雙采樣保持電路為這種應(yīng)用提供了可能性)或者順序采樣。轉(zhuǎn)換器的模擬參考電平可以配置為外部電壓基準(zhǔn)(VREFHI/VREFLO),也可以配置為內(nèi)部電壓基準(zhǔn)。18ADC模塊的功能包括:具有內(nèi)置雙采樣保持(S/H)的12位ADC內(nèi)核同步采樣模式或順序采樣模式全范圍模擬輸入:0V至3.3V,或者VREFLO到VREFHI工作時(shí)鐘為系統(tǒng)時(shí)鐘,無需預(yù)分頻多達(dá)16個(gè)通道,復(fù)用的輸入(實(shí)際AD輸入引腳是13個(gè))1916個(gè)SOC,可針對(duì)觸發(fā)源、采樣窗口和通道進(jìn)行配置用于存儲(chǔ)轉(zhuǎn)換值的16個(gè)結(jié)果寄存器(可單獨(dú)尋址)多個(gè)觸發(fā)源–S/W-軟件立即啟動(dòng)–ePWM1-4–GPIOXINT2–CPU定時(shí)器0/1/2–ADCINT1/29個(gè)靈活的PIE中斷,可在任一個(gè)轉(zhuǎn)換完成后發(fā)出中斷請(qǐng)求10.2.1ADC概述10.2.2ADC內(nèi)部結(jié)構(gòu)20

ADC模塊的內(nèi)部結(jié)構(gòu)包括以下各部分:(1)參考電平發(fā)生器(ReferenceVoltageGenerator)(2)輸入電路(InputCircuit)(3)轉(zhuǎn)換器(Converter)(4)ADC采樣決策(ADCSampleGenerationLogic)(5)SOC0~SOC15配置(SOC0~SOC15Configurations)(6)ADC中斷管理(ADCInterruptLogic)(7)AD轉(zhuǎn)換結(jié)果寄存器(ResultRegisters)2110.2.2ADC內(nèi)部結(jié)構(gòu)2210.2.3ADC功能描述231.參考電平發(fā)生器(ReferenceVoltageGenerator)通過寄存器ADCCTL1.ADCREFSEL位選擇,該位為0時(shí)選擇內(nèi)部參考電平,該位為1時(shí)選擇外部參考電平。(1)內(nèi)部參考電平轉(zhuǎn)換結(jié)果(數(shù)字量)模擬量輸入(Input)0Input≤0V4096*[(Input-VREFLO)/3.3V]0V<Input<3.3V4095Input≥3.3V轉(zhuǎn)換結(jié)果(數(shù)字量)模擬量輸入(Input)0Input≤VREFLO4096*[(Input-VREFLO)/(VREFHI-VREFLO)]VREFLO<Input<VREFHI4095Input≥VREFHI(2)外部參考電平10.2.3ADC功能描述242.SOC(StartofConvertion)工作原理ADC的工作是基于SOC控制的,SOC信號(hào)送到ADC采樣決策輯模塊(ADCSampleGenerationLogic)進(jìn)行決策,產(chǎn)生相應(yīng)的控制信號(hào):通道選擇(CHSEL)、采樣窗設(shè)置(ACQPS)和開始轉(zhuǎn)換觸發(fā)信號(hào)(SOC)。總共有16個(gè)SOC配置寄存器,用戶通過SOC0~SOC15配置寄存器進(jìn)行配置。每個(gè)SOC可以獨(dú)立配置:轉(zhuǎn)換的通道、采樣窗寬度和選擇開始轉(zhuǎn)換的觸發(fā)源。該配置機(jī)制提供了非常靈活的轉(zhuǎn)換方式。比如:用同一個(gè)觸發(fā)源對(duì)不同的通道進(jìn)行采樣;用不同的觸發(fā)源對(duì)不同的通道進(jìn)行采樣;也可以用一個(gè)觸發(fā)源對(duì)同一個(gè)采樣通道進(jìn)行多次采樣的過采樣。以下分別對(duì)采樣通道選擇、采樣窗寬帶和觸發(fā)源進(jìn)行詳細(xì)分析。10.2.3ADC功能描述25(1)采樣通道選擇輸入電路包括通道選擇和采樣/保持電路。通道選擇信號(hào)CHSEL[0-2]和CHSEL[3]來自采樣決策模塊。ADC模塊輸入的通道有16個(gè)(F28027只有13個(gè),見概述說明),分為A組和B組,各8個(gè)。內(nèi)置溫度傳感器采樣占用A5通道,通過ADCCTL1.VREFCONV位進(jìn)行選擇。參考電平VREFLO采樣占用B5通道,通過ADCCTL1.TEMPCONV位進(jìn)行選擇。當(dāng)使用外部參考電平時(shí),電平VREFHI占用ADCINA0引腳,ADCINA0不能當(dāng)作采樣輸入口。10.2.3ADC功能描述26(2)ADC采樣窗寬度選擇采樣窗的配置信號(hào)ACQPS來自采樣決策模塊。ADC的采樣保持電路必須快速準(zhǔn)確地跟蹤被采樣的信號(hào)ADCIN。設(shè)計(jì)時(shí)要根據(jù)待采樣信號(hào)的特點(diǎn)對(duì)采樣窗的寬度進(jìn)行配置,以便外部信號(hào)能夠?qū)Σ蓸与娐返碾娙葸M(jìn)行準(zhǔn)確合適地充電。采樣時(shí)間等于(ACQPS+1)個(gè)時(shí)鐘周期,ACQPS最小值為6,最大值為63。轉(zhuǎn)換時(shí)間為13個(gè)時(shí)鐘周期。AD處理總的時(shí)間等于采樣時(shí)間和轉(zhuǎn)換時(shí)間之和。ADC時(shí)鐘采樣窗配置采樣時(shí)間轉(zhuǎn)換時(shí)間AD處理總的時(shí)間40MHz6175ns325ns500ns40MHz25625ns325ns950ns60MHz6116.67ns216.67ns333.33ns60MHz25433.67ns216.67ns650ns10.2.3ADC功能描述27(3)ADC觸發(fā)源選擇ADC觸發(fā)源用于啟動(dòng)SOC配置的通道開始AD轉(zhuǎn)換。每個(gè)SOC的觸發(fā)源可以配置為以下任意一個(gè)事件。軟件立即觸發(fā)ePWM1-4的SOCA和SOCB外部中斷2,GPIOXINT2CPU定時(shí)器0/1/2中斷ADCINT1/2。用ADC轉(zhuǎn)換結(jié)束中斷信號(hào)作為觸發(fā)事件,可以用于通道的連續(xù)轉(zhuǎn)換控制。10.2.3ADC功能描述283.ADC采樣結(jié)果的保存與讀取ADC轉(zhuǎn)換的結(jié)果保存在結(jié)果寄存器ADCRESULTx中。保存方式是:順序采樣時(shí),SOCx觸發(fā)的通道轉(zhuǎn)換結(jié)果保存在對(duì)應(yīng)的ADCRESULTx中,序號(hào)一一對(duì)應(yīng)。對(duì)于同步采樣,通常只用偶數(shù)的SOCx,該SOCx配置的一對(duì)通道轉(zhuǎn)換后結(jié)果保存在ADCRESULTx和ADCRESULT(x+1)中,分別對(duì)應(yīng)A組和B組的轉(zhuǎn)換結(jié)果。例如:SOC0配置為同步采樣方式,通道配置為(ADCINA3/ADCINB3),當(dāng)觸發(fā)條件滿足時(shí),對(duì)ADCINA3/ADCINB3通道進(jìn)行同步采樣。接著,立即對(duì)ADCINA3進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后結(jié)果保存在ADCRESULT0中,然后對(duì)ADCINB3進(jìn)行轉(zhuǎn)換,結(jié)果保存在ADCRESULT1中。10.2.3ADC功能描述294.ADC采樣優(yōu)先級(jí)當(dāng)多個(gè)SOC被同時(shí)觸發(fā)時(shí),需要通過優(yōu)先級(jí)來決定哪個(gè)SOC對(duì)應(yīng)的通道優(yōu)先被轉(zhuǎn)換。采樣優(yōu)先級(jí)有兩種模式:RoundRobin模式和具有高優(yōu)先級(jí)的RoundRobin模式。10.2.3ADC功能描述30(1)RoundRobin模式:是由SOC0~SOC15組成的一個(gè)頭尾相接,方向固定的循環(huán)閉環(huán)。環(huán)內(nèi)部的16個(gè)SOC沒有固定的優(yōu)先級(jí),優(yōu)先級(jí)由循環(huán)指針RRPOINTER決定。當(dāng)前RRPOINTER的值表示上一次被轉(zhuǎn)換的SOC,那么它的下一個(gè)SOC具有最高的優(yōu)先級(jí)。ADC模塊復(fù)位后,RRPOINTER=20h,表示沒有SOC被轉(zhuǎn)換,那么SOC0具有最高優(yōu)先級(jí)。10.2.3ADC功能描述31(2)具有高優(yōu)先級(jí)的RoundRobin模式:該模式可以設(shè)置某些SOC具有高優(yōu)先級(jí),這些高優(yōu)先級(jí)的SOC可以打斷RoundRobin的循環(huán)順序,優(yōu)先進(jìn)行轉(zhuǎn)換。多個(gè)高優(yōu)先級(jí)的SOC,序號(hào)低的優(yōu)先級(jí)高。10.2.3ADC功能描述325.ADC中斷對(duì)應(yīng)于16個(gè)獨(dú)立的SOCx,有相應(yīng)的16個(gè)采樣結(jié)束信號(hào)EOCx。ADC模塊有9個(gè)中斷輸出信號(hào),即ADCINT1~ADCINT9。任意一個(gè)EOCx脈沖都可以配置為ADCINTx的觸發(fā)源。具體功能如下:(1)EOC脈沖產(chǎn)生模式選擇:一種是ADC開始轉(zhuǎn)換時(shí)輸出EOC脈沖;一種是ADC轉(zhuǎn)換結(jié)果保存前一個(gè)周期輸出EOC脈沖。通過ADCCTRL1.NTPULSEPOS位設(shè)置。(2)ADCINTx觸發(fā)源選擇:可以選擇16個(gè)EOC的任意一個(gè)作為INTx的中斷觸發(fā)源。通過INTSELxNy.INTxSEL選擇。(3)中斷使能:INTSELxNy.INTxE為中斷使能開關(guān)。(4)連續(xù)中斷模式選擇:INTSELxNy.INTxCONT位用于設(shè)置連續(xù)中斷模式或非連續(xù)中斷模式。連續(xù)模式時(shí),新的中斷在EOC觸發(fā)后馬上產(chǎn)生。非連續(xù)模式時(shí),新的中斷只能在中斷標(biāo)志位清零后產(chǎn)生。如果中斷標(biāo)志位ADCINTFLG.ADCINTx被置位時(shí)新的觸發(fā)信號(hào)EOC發(fā)生,那么中斷溢出標(biāo)志位INTOVF置位,指示一個(gè)中斷觸發(fā)信號(hào)丟失。10.2.3ADC功能描述3310.2.3ADC功能描述346.順序采樣和同步采樣采樣通道分成A組和B組。A組與采樣保持電路S/H-A相連,B組與采樣保持電路S/H-B相連,所以每次最多只能同時(shí)采樣兩路外部模擬量。根據(jù)是否同時(shí)采樣,采樣方式有順序采樣和同步采樣兩種。(1)順序采樣:按SOC配置的順序一個(gè)一個(gè)通道進(jìn)行采樣保持。順序采樣用于沒有時(shí)間關(guān)聯(lián)性的外部模擬量采樣。順序采樣時(shí),通道選擇由CHSEL[3:0]來決定。(2)同步采樣:同步采樣就是把A、B兩組相同序號(hào)的通道一對(duì)一對(duì)同步進(jìn)行采樣保持,比如ADCINA0/ADCINB0,ADCINA1/ADCINB1等。同步采樣用在具有時(shí)間關(guān)聯(lián)性的多組信號(hào)。例如,在交流電指標(biāo)計(jì)量中,需要同時(shí)對(duì)電壓電流進(jìn)行采樣,才能正確得出電壓電流的相位差,進(jìn)而算出功率因素。同步采樣時(shí),通道選擇由CHSEL[2:0]來決定。10.2.3ADC功能描述3510.2.3ADC功能描述3610.2.3ADC功能描述377.ADC模塊上電時(shí)序復(fù)位后ADC模塊處于關(guān)閉狀態(tài)。在配置ADC寄存器之前必須使能ADC時(shí)鐘。ADC模塊的上電時(shí)序?yàn)椋海?)如果選擇外部參考電平,則使能該模式。(2)ADC內(nèi)核、Bandgap電路、參考電路上電(ADCCTL1.ADCPWDN、ADCCTL1.ADCBGPWD、ADCCTL1.ADCREFPWD置位)。(3)ADC模塊使能(ADCCTL1.ADCENABLE置位)。(4)1ms后開始AD轉(zhuǎn)換。3810.3.1寄存器及驅(qū)動(dòng)函數(shù)10.3.2驅(qū)動(dòng)函數(shù)描述10.3.3軟件思維導(dǎo)圖10.3ADC的軟件架構(gòu)3910.3.1寄存器及驅(qū)動(dòng)函數(shù)ADC寄存器有結(jié)果寄存器(ADCResultRegister)、ADC控制寄存器(ADCControlRegister)、ADC中斷寄存器(ADCInterruptRegisters)、ADC優(yōu)先級(jí)寄存器(ADCPriorityRegisters)、SOC寄存器(ADCSOCRegisters)。表10-6~表10-11為ADC相關(guān)寄存器及其對(duì)應(yīng)的驅(qū)動(dòng)函數(shù)名。寄存器的詳細(xì)信息參見芯片的技術(shù)參考手冊(cè)。1.ADC轉(zhuǎn)換結(jié)果寄存器及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能ADCREULT0~ADCREULT15ADC轉(zhuǎn)換結(jié)果寄存器0x0B00--0x0B0FADC_readResult讀取結(jié)果寄存器的值402.

ADC控制寄存器1及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能ADCCTL1ADC控制寄存器10x7100ADC_disableADC_enableADC_disableBandGapADC_enableBandGapADC_disableRefBuffersADC_enableRefBuffersADC_disableTempSensorADC_enableTempSensorADC_powerDownADC_powerUpADC_resetADC_setIntPulseGenModeADC_setVoltRefSrcADC模塊禁止ADC模塊使能Bandgap電路下電Bandgap電路上電參考電路下電參考電路上電禁止內(nèi)部溫度傳感器使能內(nèi)部溫度傳感器ADC內(nèi)核下電ADC內(nèi)核上電ADC重置EOC脈沖產(chǎn)生模式選擇選擇參考電平10.3.1寄存器及驅(qū)動(dòng)函數(shù)413.

ADC控制寄存器2及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能ADCCTL2ADC控制寄存器0x7101ADC控制寄存器24.優(yōu)先級(jí)寄存器及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能SOCPRICTLSOC優(yōu)先級(jí)控制寄存器0x7110ADC_setSOCPRISOC優(yōu)先級(jí)控制10.3.1寄存器及驅(qū)動(dòng)函數(shù)425.ADC中斷寄存器及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能ADCINTFLG中斷標(biāo)志寄存器0x7104ADC_getIntStatus獲取中斷標(biāo)志位狀態(tài)ADCINTFLGCLR中斷標(biāo)志清除寄存器0x7105ADC_clearIntFlag清除中斷標(biāo)志位ADCINTOVF中斷溢出寄存器0x7106ADCINTOVFCLR中斷溢出清除寄存器0x7107INTSEL1N2中斷1和中斷2選擇寄存器0x7108ADC_disableIntADC_enableIntADC_setIntModeADC_setIntSrc中斷1和中斷2選擇INTSEL3N4中斷3和中斷4選擇寄存器0x7109中斷3和中斷4選擇INTSEL5N6中斷5和中斷6選擇寄存器0x710A中斷5和中斷6選擇INTSEL7N8中斷7和中斷8選擇寄存器0x710B中斷7和中斷8選擇INTSEL9N10中斷9和中斷10選擇寄存器0x710C中斷9和中斷10選擇10.3.1寄存器及驅(qū)動(dòng)函數(shù)436.

ADCSOC寄存器及其驅(qū)動(dòng)函數(shù)寄存器描述地址驅(qū)動(dòng)函數(shù)名功能ADCSAMPLEMODE采樣模式寄存器0x7112ADC_setSampleMode選擇采樣模式ADCINTSOCSEL1SOC中斷選擇10x7114ADCINTSOCSEL2SOC中斷選擇20x7115ADCSOCFLG1SOC標(biāo)志寄存器0x7118ADCSOCFRC1SOC軟件觸發(fā)寄存器0x711AADC_forceConversion軟件強(qiáng)制觸發(fā)ADCSOCOVF1SOC溢出寄存器0x711CADCSOCOVFCLR1SOC溢出清除寄存器0x711EADCSOCxCTLSOC0-SOC15控制寄存器0x7120-0x712FADC_setSocChanNumberADC_setSocTrigSrcADC_setSocSampleWindowSOC通道配置SOC觸發(fā)源信號(hào)配置采樣窗寬度配置10.3.1寄存器及驅(qū)動(dòng)函數(shù)4410.3.2驅(qū)動(dòng)函數(shù)描述1.函數(shù)ADC_readResult函數(shù)名ADC_readResult函數(shù)原型voidADC_readResult(ADC_HandleadcHandle,constADC_readResultNumber_ereadResultNumber)功能描述ADC轉(zhuǎn)換結(jié)果寄存器讀取輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADCRESUL0~15,庫函數(shù)定義的枚舉變量返回值A(chǔ)DC轉(zhuǎn)換結(jié)果示例://AD轉(zhuǎn)換結(jié)果寄存器讀取:讀取ADCRESULT1的值并返回送給變量Temp。Temp=ADC_readResult(myAdc,ADC_ResultNumber_1);452.函數(shù)ADC_disable函數(shù)名ADC_disable函數(shù)原型voidADC_disable(ADC_HandleadcHandle)功能描述ADC模塊禁止輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://ADC模塊禁止ADC_disable(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述463.函數(shù)ADC_enable函數(shù)名ADC_enable函數(shù)原型voidADC_enable(ADC_HandleadcHandle)功能描述ADC模塊使能輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://ADC模塊使能ADC_enable(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述474.函數(shù)ADC_disableBandGap函數(shù)名ADC_disableBandGap函數(shù)原型voidADC_disableBandGap(ADC_HandleadcHandle)功能描述Bandgap電路下電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://Bandgap電路下電ADC_disableBandGap(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述485.函數(shù)ADC_enableBandGap函數(shù)名ADC_enableBandGap函數(shù)原型voidADC_enableBandGap(ADC_HandleadcHandle)功能描述Bandgap電路上電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://Bandgap電路上電ADC_enableBandGap(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述496.函數(shù)ADC_disableRefBuffers函數(shù)名ADC_disableRefBuffers函數(shù)原型voidADC_disableRefBuffers(ADC_HandleadcHandle)功能描述參考電路下電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://參考電路下電ADC_disableRefBuffers(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述507.函數(shù)ADC_enableRefBuffers函數(shù)名ADC_enableRefBuffers函數(shù)原型voidADC_enableRefBuffers(ADC_HandleadcHandle)功能描述參考電路上電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://參考電路上電ADC_enableRefBuffers(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述518.函數(shù)ADC_powerDown函數(shù)名ADC_powerDown函數(shù)原型voidADC_powerDown(ADC_HandleadcHandle)功能描述內(nèi)核下電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://ADC內(nèi)核下電ADC_powerDown(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述529.函數(shù)ADC_powerUp函數(shù)名ADC_powerUp函數(shù)原型voidADC_powerUp(ADC_HandleadcHandle)功能描述內(nèi)核上電輸入?yún)?shù)ADC模塊的結(jié)構(gòu)體指針返回值無示例://ADC內(nèi)核上電ADC_powerUp(myAdc);10.3.2驅(qū)動(dòng)函數(shù)描述5310.函數(shù)ADC_setIntPulseGenMode函數(shù)名ADC_setIntPulseGenMode函數(shù)原型voidADC_setIntPulseGenMode(ADC_HandleadcHandle,constADC_IntPulseGenMode_epulseMode)功能描述配置ADC中斷脈沖產(chǎn)生信號(hào)輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADC中斷脈沖產(chǎn)生信號(hào),庫函數(shù)定義的枚舉變量返回值無示例://表示中斷脈沖在ADC結(jié)果保存之前一個(gè)周期發(fā)出。ADC_setIntPulseGenMode(myAdc,ADC_IntPulseGenMode_Prior);//表示中斷脈沖在ADC開始轉(zhuǎn)換時(shí)發(fā)出。ADC_setIntPulseGenMode(myAdc,ADC_IntPulseGenMode_During);10.3.2驅(qū)動(dòng)函數(shù)描述5411.函數(shù)ADC_setVoltRefSrc函數(shù)名ADC_setVoltRefSrc函數(shù)原型voidADC_setVoltRefSrc(ADC_HandleadcHandle,constADC_VoltageRefSrc_evoltSrc)功能描述參考電平選擇輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2內(nèi)部/外部參考電平選擇,庫函數(shù)定義的枚舉變量返回值無示例://參考電平選擇,選擇內(nèi)部參考電平ADC_setVoltRefSrc(myAdc,ADC_VoltageRefSrc_Int);10.3.2驅(qū)動(dòng)函數(shù)描述5512.函數(shù)ADC_clearIntFlag函數(shù)名ADC_clearIntFlag函數(shù)原型voidADC_clearIntFlag(ADC_HandleadcHandle,constADC_IntNumber_eintNumber)功能描述中斷標(biāo)志位清0輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADC中斷通道1~9,庫函數(shù)定義的枚舉變量返回值無示例://中斷標(biāo)志位清0:ADCINT5的中斷標(biāo)志位清零。ADC_clearIntFlag(myAdc,ADC_IntNumber_5);10.3.2驅(qū)動(dòng)函數(shù)描述5613.函數(shù)ADC_enableInt函數(shù)名ADC_enableInt函數(shù)原型voidADC_enableInt(ADC_HandleadcHandle,constADC_IntNumber_eintNumber)功能描述ADC中斷使能輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADC中斷通道1~9,庫函數(shù)定義的枚舉變量返回值無示例://中斷使能:使能ADCINT5中斷。ADC_enableInt(myAdc,ADC_IntNumber_5);10.3.2驅(qū)動(dòng)函數(shù)描述5714.函數(shù)ADC_setIntMode函數(shù)名ADC_setIntMode函數(shù)原型voidADC_setIntMode(ADC_HandleadcHandle,constADC_IntNumber_eintNumber,constADC_IntMode_eintMode)功能描述配置ADC中斷模式輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADC中斷通道1~9,庫函數(shù)定義的枚舉變量輸入?yún)?shù)3配置中斷模式:中斷標(biāo)志位清零后/EOC信號(hào)觸發(fā)時(shí)產(chǎn)生,庫函數(shù)定義的枚舉變量返回值無示例://中斷連續(xù)模式選擇:ADCINT5新的中斷在中斷標(biāo)志位清零后才能產(chǎn)生。ADC_setIntMode(myAdc,ADC_IntNumber_5,ADC_IntMode_ClearFlag);//中斷連續(xù)模式選擇:ADCINT5新的中斷在EOC信號(hào)觸發(fā)時(shí)馬上產(chǎn)生。ADC_setIntMode(myAdc,ADC_IntNumber_5,ADC_IntMode_EOC);10.3.2驅(qū)動(dòng)函數(shù)描述5815.函數(shù)ADC_setIntSrc函數(shù)名ADC_setIntSrc函數(shù)原型voidADC_setIntSrc(ADC_HandleadcHandle,constADC_IntNumber_eintNumber,constADC_IntSrc_eintSrc)功能描述配置ADC中斷源信號(hào)輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置ADC中斷通道1~9,庫函數(shù)定義的枚舉變量輸入?yún)?shù)3配置中斷源的轉(zhuǎn)換結(jié)束信號(hào),庫函數(shù)定義的枚舉變量返回值無示例://配置EOC1為中斷INT5的觸發(fā)源。ADC_setIntSrc(myAdc,ADC_IntNumber_5,ADC_IntSrc_EOC1);10.3.2驅(qū)動(dòng)函數(shù)描述5916.函數(shù)ADC_setSampleMode函數(shù)名ADC_setSampleMode函數(shù)原型voidADC_setSampleMode(ADC_HandleadcHandle,constADC_SampleMode_esampleMode)功能描述ADC采樣模式選擇輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2獨(dú)立/順序采樣模式選擇,庫函數(shù)定義的枚舉變量返回值無示例://采樣模式選擇:配置SOC0、SOC1獨(dú)立采樣。SOC觸發(fā)單個(gè)通道采樣。ADC_setSampleMode(myAdc,ADC_SampleMode_SOC0_and_SOC1_Separate);//采樣模式選擇:配置SOC0、SOC1同步采樣。SOC觸發(fā)兩個(gè)采樣通道同時(shí)采樣。同步采樣時(shí),一般只配置偶數(shù)的SOC,該SOC所配置的通道對(duì)同步采樣。采樣結(jié)果分別保存在ADCRESULT0和ADCRESULT1中。ADC_setSampleMode(myAdc,ADC_SampleMode_SOC0_and_SOC1_Together);10.3.2驅(qū)動(dòng)函數(shù)描述6017.函數(shù)ADC_forceConversion函數(shù)名ADC_forceConversion函數(shù)原型voidADC_forceConversion(ADC_HandleadcHandle,constADC_SocNumber_esocNumber)功能描述強(qiáng)制觸發(fā)轉(zhuǎn)換輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置SOC0-15,庫函數(shù)定義的枚舉變量返回值無示例://軟件立即觸發(fā),SOC1對(duì)應(yīng)的通道開始AD轉(zhuǎn)換。ADC_forceConversion(myAdc,ADC_SocNumber_1);10.3.2驅(qū)動(dòng)函數(shù)描述6118.函數(shù)ADC_setSocChanNumber函數(shù)名ADC_setSocChanNumber函數(shù)原型voidADC_setSocChanNumber(ADC_HandleadcHandle,constADC_SocNumber_esocNumber,constADC_SocChanNumber_echanNumber)功能描述SOC通道配置輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置SOC0-15,庫函數(shù)定義的枚舉變量輸入?yún)?shù)3配置SOCA0-B7通道,庫函數(shù)定義的枚舉變量返回值無示例://通道選擇,配置SOC1選擇A0通道。ADC_setSocChanNumber(myAdc,ADC_SocNumber_1,ADC_SocChanNumber_A0);10.3.2驅(qū)動(dòng)函數(shù)描述6219.函數(shù)ADC_setSocTrigSrc函數(shù)名ADC_setSocTrigSrc函數(shù)原型voidADC_setSocTrigSrc(ADC_HandleadcHandle,constADC_SocNumber_esocNumber,constADC_SocTrigSrc_etrigSrc)功能描述配置SOC觸發(fā)源信號(hào)輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置SOC0-15,庫函數(shù)定義的枚舉變量輸入?yún)?shù)3配置觸發(fā)源信號(hào),庫函數(shù)定義的枚舉變量返回值無示例://觸發(fā)源選擇:配置SOC1的觸發(fā)源信號(hào)為EPWM1SOCA。ADC_setSocTrigSrc(myAdc,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM1_ADCSOCA);10.3.2驅(qū)動(dòng)函數(shù)描述6320.函數(shù)ADC_setSocSampleWindow函數(shù)名ADC_setSocSampleWindow函數(shù)原型voidADC_setSocSampleWindow(ADC_HandleadcHandle,constADC_SocNumber_esocNumber,constADC_SocSampleWindow_esampleWindow)功能描述采樣窗寬度配置輸入?yún)?shù)1ADC模塊的結(jié)構(gòu)體指針輸入?yún)?shù)2配置SOC0-15,庫函數(shù)定義的枚舉變量輸入?yún)?shù)3采樣窗寬度選擇:7~35個(gè)時(shí)鐘周期返回值無示例://采樣窗寬度配置:配置SOC1觸發(fā)的通道采樣窗寬度為8個(gè)時(shí)鐘周期。ADC_setSocSampleWindow(myAdc,ADC_SocNumber_1,ADC_SocSampleWindow_8_cycles);

10.3.2驅(qū)動(dòng)函數(shù)描述6410.3.3軟件思維導(dǎo)圖651.ADC功能配置步驟1:ADC參考電平選擇(ADC_setVoltRefSrc)步驟2:ADC內(nèi)核上電(ADC_powerUp)步驟3:Bandgap電路上電(ADC_enableBandGap)步驟4:參考電路上電(ADC_enableRefBuffers)步驟5:ADC模塊使能(ADC_enable)步驟6:采樣模式選擇(ADC_setSampleMode)步驟7:SOCx觸發(fā)的通道選擇(ADC_setSocChanNumber)步驟8:觸發(fā)源選擇(ADC_setSocTrigSrc)步驟9:采樣窗寬度配置(ADC_setSocSampleWindow)步驟10:事件配置(ADC_setIntPulseGenMode、ADC_setIntMode、ADC_setIntSrc)10.3.3軟件思維導(dǎo)圖662.中斷事件配置步驟11:中斷入口地址注冊(cè)(PIE_registerPieIntHandler)步驟12:ADC事件中斷使能(ADC_enableInt)步驟13:PIE級(jí)中斷使能(PIE_enableInt)步驟14:CPU級(jí)中斷使能(CPU_enableInt)3.中斷服務(wù)程序在ADC中斷服務(wù)程序里完成轉(zhuǎn)換結(jié)果的讀取和處理,清除ADC中斷標(biāo)志位和對(duì)應(yīng)的PIE中斷應(yīng)答位PIEACKx。10.3.3軟件思維導(dǎo)圖6710.4.1項(xiàng)目任務(wù)

10.4.2任務(wù)分析10.4.3部分程序代碼10.4.4文件管理10.4.5項(xiàng)目實(shí)施

10.4實(shí)訓(xùn)案例—“模擬數(shù)字兩個(gè)世界”6810.4.1項(xiàng)目任務(wù)1.項(xiàng)目任務(wù)利用芯片內(nèi)置的溫度傳感器進(jìn)行芯片溫度的檢測(cè),并轉(zhuǎn)換為實(shí)際溫度值。采樣間隔時(shí)間為1秒。2.任務(wù)分析AD轉(zhuǎn)換結(jié)果與溫度的對(duì)應(yīng)關(guān)系如圖所示。實(shí)際應(yīng)用中,可以直接利用庫函數(shù)ADC_getTemperatureC進(jìn)行AD值與實(shí)際溫度值的轉(zhuǎn)換。采樣間隔時(shí)間通過定時(shí)器控制,定時(shí)時(shí)間為1秒,利用定時(shí)器T0的中斷信號(hào)觸發(fā)ADC轉(zhuǎn)換。69

10.4.3部分程序代碼軟件工程包括ADC模塊的功能配置、中斷使能配置、中斷入口地址配置和中斷函數(shù)等。參考程序見程序清單1~程序清單6。程序清單1ADC模塊的功能配置/**************************************************************名稱:myADC_functionConfigure()*功能:ADC模塊的功能配置*路徑:..\chap10_ADC_1\User_Component\myAdc\myAdc.c**************************************************************/voidmyADC_functionConfigure(){ADC_powerUp(myAdc); //ADC內(nèi)核上電ADC_enableBandGap(myAdc);//ADC模塊上電ADC_enableRefBuffers(myAdc); //參考電路上電ADC_enable(myAdc);//ADC模塊使能70ADC_setVoltRefSrc(myAdc,ADC_VoltageRefSrc_Int);//使用內(nèi)部參考電平//SOC配置ADC_enableTempSensor(myAdc);//通道A5與溫度傳感器連接ADC_setSocChanNumber(myAdc,ADC_SocNumber_0,ADC_SocChanNumber_A5);

//ADCINA5由SOC0控制ADC_setSocSampleWindow(myAdc,ADC_SocNumber_0,ADC_SocSampleWindow_7_cycles);

//采樣窗設(shè)置為7個(gè)ADCCLK周期ADC_setSocTrigSrc(myAdc,ADC_SocNumber_0,ADC_SocTrigSrc_CpuTimer_0);//定時(shí)器觸發(fā)}

10.4.3部分程序代碼71/**************************************************************名稱:myADC_eventConfigure()*功能:ADC中斷事件配置*路徑:..\chap10_ADC_1\User_Component\myAdc\myAdc.c**************************************************************/voidmyADC_eventConfigure(void)//中斷信號(hào)發(fā)生時(shí)刻配置{//ADCINT1新的中斷在中斷標(biāo)志位清零后才能產(chǎn)生ADC_setIntMode(myAdc,ADC_IntNumber_1,ADC_IntMode_ClearFlag);//ADC結(jié)果保存前一個(gè)周期輸出EOC脈沖ADC_setIntPulseGenMode(myAdc,ADC_IntPulseGenMode_Prior);//EOC0觸發(fā)ADCINT1ADC_setIntSrc(myAdc,ADC_IntNumber_1,ADC_IntSrc_EOC0);}程序清單2ADC模塊中斷事件配置

10.4.3部分程序代碼72/**************************************************************名稱:User_Pie_eventConfigure()*功能:ADC模塊的中斷使能配置,中斷入口地址配置*路徑:....\chap10_ADC_1\User_Component\User_Pie\User_Pie.c**************************************************************/voidUser_Pie_eventConfigure(void){//設(shè)備級(jí)中斷允許:ADCINT1中斷允許ADC_enableInt(myAdc,ADC_IntNumber_1);//PIE級(jí)中斷允許

PIE_enableInt(myPie,PIE_GroupNumber_10,PIE_InterruptSource_ADCINT_10_1);//CPU級(jí)中斷允許

CPU_enableInt(myCpu,CPU_IntNumber_10);}程序清單3ADC模塊的中斷使能配置,中斷入口地址配置

10.4.3部分程序代碼73/**************************************************************名稱:User_Pie_functionConfigure()*功能:中斷入口地址配置*路徑:....\chap10_ADC_1\User_Component\User_Pie

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論