AVR ATmega32-A マイクロコントローラーのコードを書いています。以下に示すように、スイッチケースを使用しています。
unsigned char Command;
unsigned int Param;
void runCom(void){
switch(Command){
case(NO_COM):
Command = 0;
break;
case(INF):
printf("\r\n\r\n");
printf("university\r\n");
printf("sweden\r\n");
printf("Ver. 1.0A\r\n");
Command = 0;
break;
case (DB):
Command = 0;
break;
case(CLEARM):
Command = 0;
break;
default:
Command = 0;
break;
}
}
上記のコードは機能していますが、以下に示すように、そのスイッチにもう 1 つのケースを追加したいと考えています。
unsigned char Command, Command1;
unsigned int Param;
void runCom(void){
switch(Command){
case(NO_COM):
Command = 0;
break;
case(INF):
printf("\r\n\r\n");
printf("university\r\n");
printf("sweden\r\n");
printf("Ver. 1.0A\r\n");
Command = 0;
break;
case (DB):
Command = 0;
break;
case(ADC):
printf("ADC Value",ReadAd());
printf("Enter Amplification stage");
switch(Command1){
case(stage1):
PORTC=0x00;
DDRC=0xC0;
printf("ADC Value",ReadAd());
Command1 = 0;
break;
case(stage2):
PORTC=0x00;
DDRC=0x03;
printf("ADC Value",ReadAd());
Command1 = 0;
break;
}
Command = 0;
break;
case(MEM):
Command = 0;
break;
case(CLEARM):
Command = 0;
break;
default:
Command = 0;
break;
}
}
次のようなエラーが発生しています
undefind symbol 'ADC'
undefind symbol 'stage1'
undefind symbol 'stage2'
それから私はこのように宣言しました
unsigned char Command, ADC, Command1, stage1, stage2;
unsigned int Param;
今、私は次のようなエラーが発生しています
constant integral expression required at line case(ADC)
constant integral expression required at line case(stage1)
constant integral expression required at line case(stage2)
このエラーを克服する方法を教えてください。私はWGP、WGF、INFをどこにも宣言していませんが、「WGF、WGP、INFの未定義のシンボルを取得していません。なぜこのエラーがADCでのみ発生するのですか。以前に使用したのと同じスイッチケースルールを適用しました。提案をいただければ幸いです。 .
前もって感謝します。