1

私は今日このコードクラスに取り組んでおり、何度も経験したことを保証します. 何らかの理由で、ブレークポイントを設定して「channelsel」の値を決定するたびに、「0」しか得られません。1、2、3、または 4 を得ることはありません (私の MAXCHANNELS は 5 です)。

私が使用しているのは、P18F45K22 マイクロコントローラーと mplab c18 です。

次のコードをご覧ください。よろしくお願いします。

int channelsel = 0;
for (channelsel = 0; channelsel < MAXCHANNELS; channelsel++)
    {   
    switch(channelsel)
       {
        case 0:
            SetChanADC(ADC_CH0);
            break;
        case 1:
            SetChanADC(ADC_CH1);
            break;
        case 2: 
            SetChanADC(ADC_CH2);
            break;
        case 3:
            SetChanADC(ADC_CH3);
            break;
        case 4: 
            SetChanADC(ADC_CH4);
            break;
        default:
            SetChanADC(ADC_CH0);
            break;
        }   
    ConvertADC();
    while(BusyADC() == TRUE) Delay1TCY();       
    sampledValue = ReadADC();
    setCurrentTemperatureForChannel(channelsel, sampledValue);
    sprintf (buf, "current Temp of channel %i is %x \n\r", channelsel, sampledValue);
    puts1USART(buf);
    Delay10KTCYx(10);
}
4

2 に答える 2