Ребят подскажите, что не так делаю // Прерывание по таймеру Код (C++): TCCR0A |= (1 << WGM01); OCR0A = 0xF9; TIMSK0 |= (1 << OCIE0A); // TCCR0B |= (1 << CS01) | (1 << CS00); Отключил, ибо и так делитель на 64 sei(); Теперь сама функция прерывания Код (C++): ISR (TIMER0_COMPA_vect) { timerLED1++; Serial.println(timerLED1); if (timerLED1 == 1000) { lcd.clear(); lcd.setCursor(0, 1); lcd.print("INSERT COIN"); timerLED1 = 0; } } И судя по монитору порта, все зависает нахрен, только подходя к условию if И стоит после 988
Ну да ) Голова перестала соображать окончательно. Еще вопрос, есть ли вариант хоть какой-нибудь параллельный код? Допустим, чтобы он в прерывании выполнялся не останавливая основной цикл?
Это всё выноси из обработчика прерывания! Работай или по своему флагу, или по флагу сравнения регистра COMPA. Так не бывает. Прерывание всегда останавливает основной цикл.
В таком случае есть идеи, как подключить трёх разрядный семисегментный индикатор и Lcd 16x2 на одну ардуину, чтобы всё это работало, и не мешало друг другу? И можно по подробнее про флаг сравнения регистра COMPA, пример кода? В первый раз с прерываниями по таймеру столкнулся.