ADC 更換channel的問題

[复制链接]
1141|0
 楼主| edison吴 发表于 2023-10-9 15:17 | 显示全部楼层 |阅读模式
我的芯片是dspic33ck32mp105, 使用MCC產生代碼,
我使用了AN0(可以了), AN3,AN4(這兩個有問題)
我看讀取結果時是有正確讀取的, 但是結果不對?
while(1)
    {
      DISC=1;
      d_ms(1);
      DISC=0;
      d_ms(1);
        uint32_t conversion,i=0;
        ADC1_Initialize();
        ADC1_Enable();
        channel=channel_AN3;
        ADC1_ChannelSelect(channel); //這裡選擇channel, 我已經改成了channel_AN3;
        ADC1_SoftwareTriggerEnable();
        //Provide Delay
        for(i=0;i <1000;i++)
        {
        }
        ADC1_SoftwareTriggerDisable();
        while(!ADC1_IsConversionComplete(channel));
        conversion = ADC1_ConversionResultGet(channel);//這裡讀取值, 結果是1033, 應該要接近0, 因為我量電壓是0V
        ADC1_Disable();
        conversion=0;
    }      


附上 ADC1_ChannelSelect(channel)的代碼:
inline static uint16_t ADC1_ConversionResultGet( ADC1_CHANNEL channel )
{
    uint16_t result;

    switch(channel)
    {
        case channel_AN3:
                result = ADCBUF3;//確實有到這裡讀取值, 結果是1033, 應該要接近0, 因為我量電壓是0V
                break;
        case channel_AN4:
                result = ADCBUF4;
                break;
        case channel_AN19:
                result = ADCBUF19;
                break;
        case channel_AN20:
                result = ADCBUF20;
                break;
        case channel_AN0:
                result = ADCBUF0;
                break;
        default:
                break;
    }
    return result;


您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部