выражение нельзя использовать как функцию

pwm
void setup() {
  // put your setup code here, to run once:
pinMode (9, OUTPUT) ;
pinMode (10, OUTPUT) ;
TCCR1A = 0;
TCCR1B = 0
TCCR1A |= (1<<WGM11) | (1<<COM1A1) | (1<<COM1B1) ; //non-inverting (error msg)
TCCR1B |= (1<<CS10) | (1<<WGM12) | (1<<WGM13) ; //prescaler 1,}

void loop() {
  // put your main code here, to run repeatedly:
ICR1 = map(analogRead(A1), 0, 1023, 0, 255);
OCR1A = map(analogRead(A0), 0, 1023, 0, ICR1);
}
  • Элемент списка

проблема с загрузкой этого скетча в arduino uno. любой может помочь.


невозможно загрузить: выражение нельзя использовать как функцию

, 👍-1


3 ответа


-2

Ответьте, прежде чем обновлять свой вопрос:

Первая строка неправильная, она заканчивается на

TCCR1A |= (1<

Чем вы начинаете новую функцию

void loop()

Также выровняйте свой код, выделив его и нажав ctlr-k

ОБНОВЛЕНИЕ

После изменения вопроса/кода:

В этой строке:

TCCR1B |= (1<<CS10) | (1<<WGM12) | (1<<WGM13) ; //prescaler 1,}TCCR1B |= //prescaler 1,}

У вас есть комментарий (//), однако код, стоящий за ним, не выполняется, включая закрывающую скобку }, закрывающую функцию настройки.

Таким образом, если вы переместите квадратную скобку } на следующую новую строку, функция будет закрыта в соответствии с грамматикой C(++).

(Отсутствующее двоеточие уже упоминалось другими).

,

извините, я все еще не понимаю. Пожалуйста, объясните немного больше, @lee

Я обновил вопрос ... для тех, кто проголосовал против: вопрос был изменен после моего первоначального ответа, который был правильным для показанного ранее кода., @Michel Keijzers


0

Точка с запятой ; отсутствует после TCCR1B = 0

Вторая проблема заключается в том, что отсутствует }, который вы фактически оставили в комментарии здесь //prescaler 1, разделите его на две строки

//prescaler 1,
}

Пожалуйста, уделите некоторое время изучению основ C++. Это довольно весело и на удивление легко.

,

спасибо филип. проблема решена. Вылезла 2-я проблема. здесь не допускается определение функции перед '{' at void loop () { line. Пожалуйста, помогите., @lee

спасибо филип. вы действительно полезны., @lee


0

По крайней мере, этот код компилируется нормально. Я не уверен, что он будет делать на Arduino.

void setup() {

  pinMode (9, OUTPUT);
  pinMode (10, OUTPUT);
  TCCR1A = 0;
  TCCR1B = 0;
  TCCR1A |= (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1); //не инвертирование (сообщение об ошибке)
  TCCR1B |= (1 << CS10) | (1 << WGM12) | (1 << WGM13); //пределитель 1,

}

void loop() {

  ICR1 = map(analogRead(A1), 0, 1023, 0, 255);
  OCR1A = map(analogRead(A0), 0, 1023, 0, ICR1);

}
,