C 虽然我声明了2个变量并传递了2个变量,但在函数调用错误中得到的参数太少
我是c语言的初学者。我声明2个变量并传递2个变量。所以,我不明白为什么会发生这个错误。 另外,当我从错误行中删除0b时,代码正在工作 问候。这是我的主要代码和函数 消息:错误[Pe165]:函数调用中的参数太少C 虽然我声明了2个变量并传递了2个变量,但在函数调用错误中得到的参数太少,c,msp430,iar,C,Msp430,Iar,我是c语言的初学者。我声明2个变量并传递2个变量。所以,我不明白为什么会发生这个错误。 另外,当我从错误行中删除0b时,代码正在工作 问候。这是我的主要代码和函数 消息:错误[Pe165]:函数调用中的参数太少 C没有二进制文本。0b。。。不是有效的C。某些编译器支持将其作为扩展,但其他编译器不支持 使用十六进制表示法。此错误发生在哪里?哪个函数调用?您声明了哪些变量?确切的错误信息是什么?请告诉我。粘贴编译器中的错误,以便与您的错误相同的人可以找到问题。我编译了您的代码,但没有得到“太少的参数
C没有二进制文本。0b。。。不是有效的C。某些编译器支持将其作为扩展,但其他编译器不支持
使用十六进制表示法。此错误发生在哪里?哪个函数调用?您声明了哪些变量?确切的错误信息是什么?请告诉我。粘贴编译器中的错误,以便与您的错误相同的人可以找到问题。我编译了您的代码,但没有得到“太少的参数”。请尝试添加void transmitunsigned long data_word、unsigned char number_of_bits;在呼叫传输之前。我认为有一个include missing错误消息应该提到文件名和行号。
void transmit(unsigned long data_word, unsigned char number_of_bits);
//i added this before i call the function
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
init();
while (1) {
if ((P2IN & BTN1) == 0) //when button pressed
{
unsigned int j;
for (j = 0; j < 2; j++) {
transmit(0b010000100100011, 15); // ERROR OCCURS IN HERE
delay_ms(40);
}
while ((P2IN & BTN1) == 0);
}
}
}
// sending out bits, one by one, LSB first, maximum 16 bits (1 word)
void transmit(unsigned long data_word, unsigned char number_of_bits)
{
unsigned char i;
unsigned int mask;
for (i = 0; i < number_of_bits; i++) {
mask = (1 << i);
if ((data_word & mask) == 0) // bit '0'
{
transmitBit0();
} else // bit '1'
{
transmitBit1();
}
}
}