хотя я объявляю 2 переменные и передаю 2 переменные, я получаю слишком мало аргументов в ошибке вызова функции - PullRequest
0 голосов
/ 31 марта 2019

Я начинающий с ц.Я объявляю 2 переменные и передаю 2 переменные.Итак, я не понял, почему возникает эта ошибка.Также, когда я удаляю "0b" из строки ошибки, код работает

С уважением.Вот мой основной код и функция

Сообщение: ошибка [Pe165]: слишком мало аргументов при вызове функции

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();
    }
  }
}

1 Ответ

0 голосов
/ 31 марта 2019

C не имеет двоичных литералов.0b... недопустимо C. Некоторые компиляторы поддерживают его как расширение, а другие нет.

Используйте шестнадцатеричное представление.

...