Я пишу прошивку для ATMega328 и сталкиваюсь с некоторыми проблемами.После поиска в моей логике в течение нескольких часов я мог свести код к самому базовому примеру и все еще иметь проблему.
Я устанавливаю пин-код на значение переменной.Поскольку я не хочу сохранять копии большого массива, я устанавливаю вывод на одно и то же значение снова и снова, и если переменная меняется, вывод устанавливается в другое состояние.
int main() {
DDRB |= _BV(PB2);
while (1) {
PINB |= _BV(PB2);
_delay_ms(50);
}
return 0;
}
Проблема в том, что с этим кодом штырь включается и выключается каждые 50 мс.
Я мог бы подумать о реструктуризации своего кода, чтобы я мог обнаружить изменение упомянутой переменной без необходимости копирования.Но, в конце концов, я не понимаю проблемы, потому что я снова и снова устанавливаю бит выходного порта на одно и то же значение.