這是MCC的一個BUG, 因為MCC沒有交代如何更換channel的方法.
後來仔細看了datasheet後, 找到了這個方法, 代碼如下:
//====== ADC define==========================
uint8_t channel=0;
uint16_t resultADC=0; //124=0.1V , 3.3V=4092
uint32_t conversion =0;
//=======program ==========================
uint16_t Value_ADC=0;
ADCON3L =ADCON3L & 0xfff0; //輸入通道選擇:0=AN0
while(1)
{
DO_ADC( channel_AN0); //AD轉換
Value_ADC=resultADC; //結果保存到變量
//====================
ADCON3L =ADCON3L & 0xfff0; //輸入通道選擇:0=AN0
ADCON3L =ADCON3L +3; //輸入通道選擇:3=AN3
DO_ADC( channel_AN3); //AD轉換
Value_ADC=resultADC;
//====================
ADCON3L =ADCON3L & 0xfff0; //輸入通道選擇:0=AN0
ADCON3L =ADCON3L +4; //輸入通道選擇:3=AN4
DO_ADC( channel_AN4);
Value_ADC=resultADC;
}
|