私は今日このコードクラスに取り組んでおり、何度も経験したことを保証します. 何らかの理由で、ブレークポイントを設定して「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);
}