C 语法错误-标记“0”&引用;在“之前插入”;{quot;
我为ADC写了一个函数来读取一个齿轮值。我经常遇到这个错误,但我不知道该怎么处理。建议? 我的代码是:C 语法错误-标记“0”&引用;在“之前插入”;{quot;,c,syntax-error,C,Syntax Error,我为ADC写了一个函数来读取一个齿轮值。我经常遇到这个错误,但我不知道该怎么处理。建议? 我的代码是: void MAIN_vInit(void) { void read_bremspedal(); //This is my ADC read function prototype PSW_IEN = 0; /// -----------------------------------------------------------
void MAIN_vInit(void)
{
void read_bremspedal(); //This is my ADC read function prototype
PSW_IEN = 0;
/// -----------------------------------------------------------------------
/// Configuration of the System Clock:
/// -----------------------------------------------------------------------
/// - VCO clock used, input clock is connected
/// - input frequency is 8,00 MHz
MAIN_vUnlockProtecReg(); // unlock write security
MAIN_vChangeFreq(); // load PLL control register
// -----------------------------------------------------------------------
// SCU Interrupt Disable configuration:
// -----------------------------------------------------------------------
SCU_INTDIS = 0xFFFF; // SCU Interrupt Disable Register
// -----------------------------------------------------------------------
// Initialization of the Peripherals:
// -----------------------------------------------------------------------
// initializes the Parallel Ports
IO_vInit();
// initializes the Capture / Compare Unit 61 (CCU61)
CCU61_vInit();
// initializes the Analog / Digital Converter (ADC0)
ADC0_vInit();
// initializes the MultiCAN Module (CAN)
CAN_vInit();
// -----------------------------------------------------------------------
// Initialization of the Bank Select registers:
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// SCU Interrupt Source Selection configuration:
// -----------------------------------------------------------------------
SCU_ISSR = 0x0000; // SCU Interrupt Source Select Register
// USER CODE BEGIN (Init,3)
// USER CODE END
MAIN_vLockProtecReg(); // lock write security
// globally enable interrupts
PSW_IEN = 1;
}
while(1)
{
// USER CODE BEGIN (Main,13)
//Bremspedal
void read_bremspedal(){ //syntax error - token ";" inserted before "{"
ADC0_vStartSeq0ReqChNum(0,0,1,3);
uwbremsen = ADC0_uwGetResultData(RESULT_REG_1);
uwbremsen >>= 4;
if(uwbremsen) { // wenn gebremest!
CAN_MODATA4LL = uwbremsen;
CAN_vTransmit(4); //Rekuperation signal senden
IO_vSetPin(IO_P10_0); // Nicht Schalten signal
}
}
}
您在while循环中定义函数“void read_bremspeopal(){”。此外,您正在尝试编写一个根本不在任何函数中的while循环。颠倒代码行应该可以工作。至少应编译以下代码:
void read_bremspedal(){
// USER CODE BEGIN (Main,13)
//Bremspedal
while(1) {
ADC0_vStartSeq0ReqChNum(0,0,1,3);
uwbremsen = ADC0_uwGetResultData(RESULT_REG_1);
uwbremsen >>= 4;
if(uwbremsen) { // wenn gebremest!
CAN_MODATA4LL = uwbremsen;
CAN_vTransmit(4); //Rekuperation signal senden
IO_vSetPin(IO_P10_0); // Nicht Schalten signal
}
}
}
祝你好运
注意-它可能只是复制/粘贴,但当使用适当缩进时,确保打开和关闭括号/大括号的正确数量要容易得多。始终缩进至少1(可能2-4个空格)在每一个开放的花括号之后。这在将来应该会有所帮助!在
while
循环之前似乎有一个额外的右括号。不能在标准C中使用局部函数。小nit:应该使用int main(void){…}根据C99:5.1.2.2.1程序启动1,程序启动时调用的函数名为main。该实现未声明此函数的原型。该函数应使用int返回类型定义,且不带参数:int main(void){/*…/}或两个参数(此处称为argc和argv,尽管可以使用任何名称,因为它们是声明它们的函数的本地名称):int main(int argc,char*argv[]){/..*/}或等效名称;10)或者以其他实现定义的方式。非常感谢drew_w的回复。我尝试了您的建议,但错误仍然存在。实际上,我这里有MAIN.h和MAIN.c,while(1)循环在void MAIN(void)函数下的MAIN.c中。我还想在void MAIN(void)函数中创建我的函数你能不能给我一些更有用的建议,这样我就可以摆脱这个语法错误。你不认为,这个错误可能是因为MAIN.h中缺少了一些头文件。“我还想在void MAIN(void)
”中创建我的函数。你不能。把它放在MAIN()
函数上面。非常感谢glglgl的评论。我得到了它。。。