眾所周知,模數轉換,即Analog-to-Digital Converter,常稱ADC,是指將連續變量的模擬信號轉換為離散的數字信號的器件。主要用于對模擬信號進行數字采集,以進行數據處理。通常情況下,在轉換完成時讀取轉換結果。而ADC中的窗口比較功能,會檢測ADC結果是否低于或高于特定閾值,當轉換結果在某一個范圍時可以觸發中斷,幾乎無需軟件干預。該配置非常實用,它可以監視信號是否按照要求保持在特定范圍內,或者在電池電量不足/過充時發出信號。
RA MCU中一般都會包括12位逐次逼近型A/D轉換器(ADC12)單元,最多可選擇13路模擬量輸入通道、溫度傳感器輸出、內部參考電壓進行轉換。
同時,ADC12還提供比較功能(窗口A和窗口B)。比較功能分別指定窗口A和窗口B的參考值上限和的參考值下限,當所選通道的A/D轉換值滿足比較條件時輸出中斷。窗口A和窗口B的主要區別在于它們的中斷輸出信號不同以及對窗口B只能選擇一個通道的限制。
窗口A比較功能相關的寄存器有ADCMPCR、ADCMPLR0/1和ADCMPDR0/1寄存器,詳情請參考RA硬件手冊。
ADC數據與可設置的高低閾值進行比較,并可為AD數據在設定的門限值內、外、高或低自動生成比較中斷。需要設置三個選項位置,接下來我們將逐個介紹各種情況下屬性設置和用戶代碼。
A/D轉換結果高于門限值時產生窗口比較A中斷(ADC120_CMPAI)
若想實現上面的比較功能,請按照下圖中所示,在FSP中設置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請在這里設定閾值
(2) Input → Window Compare
Window Mode:選擇Disabled
當AD轉換結果 > ADCMPDR0(Lower Reference 設定值時)時,產生Compare中斷。
A/D轉換結果低于門限值時產生窗口比較A中斷(ADC120_CMPAI)
若想實現上圖的比較功能,請按照下圖中所示,在FSP中設置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference:請在這里設定閾值
(2) Input → Window Compare
Window Mode:選擇Disabled
(3)代碼中將CMPLCHA0位置為“0”
R_ADC0->ADCMPLR_b->CMPLCHA0 = 0;
當AD轉換結果 < ADCMPDR0(Lower Reference 設定值時),產生Compare中斷。
A/D轉換結果在門限值內
若想實現上圖的比較功能,請按照下圖中所示,在FSP中設置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請在這里設定閾值
(2) Input → Window Compare
Window Mode:選擇Enabled
當ADCMPDR0(Lower Reference設定值時)< AD轉換結果< ADCMPDR1(Upper Reference設定值時)時,產生Compare中斷。
A/D轉換結果在門限值外
若想實現上圖的比較功能,請按照下圖中所示,在FSP中設置ADC屬性。
(1)Input → Window Compare → Window A
Enable:選擇Enabled
Lower Reference、Upper Reference:請在這里設定閾值
(2) Input → Window Compare
Window Mode:選擇Enabled
(3)代碼中將CMPLCHA0位置為“0”
R_ADC0->ADCMPLR_b->CMPLCHA0 = 0;
當AD轉換結果<ADCMPDR0(Lower Reference 設定值時)或者>ADCMPDR1(Upper Reference設定值時)時,產生Compare中斷。
-
mcu
+關注
關注
146文章
17123瀏覽量
350982 -
adc
+關注
關注
98文章
6495瀏覽量
544461 -
模擬信號
+關注
關注
8文章
1128瀏覽量
52442 -
數字信號
+關注
關注
2文章
969瀏覽量
47538
發布評論請先 登錄
相關推薦
評論