我正在为 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;
}
}
上面的代码正在运行,但现在我想在该开关中再添加一个案例,如下所示。
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 上。我已经放弃了与以前使用的相同的 switch case 规则。任何建议表示赞赏.
提前致谢。