我正在寫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;
}
}
上述代碼正在工作,但現在我想在該開關中添加一個案例,如下所示。像
undefind symbol 'ADC'
undefind symbol 'stage1'
undefind symbol 'stage2'
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;
}
}
我得到錯誤的話,我已經聲明如下
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上,我已經停用了與以前相同的開關盒規則。 。
在此先感謝。
這是在www.avrfreaks.net上提出的同一問題的交叉帖子。 – johanekdahl