Написал тестовую программу (ну чтобы убедится что всё работает как задумано).
Она должна:
- при старте зажечь светодиоды
- перейти к циклу опроса кнопки
- гонять цикл, пока кнопка не нажата
- как нажата переключить светодиоды в инверсное положение (т.е. включить или выключить, в зависимости от того, что на текущий момент)
- Уйти на подпрограмму ожидания (чтобы дребезг контакта исключить)
- В подпрограмме ожидания включается таймер и гоняется цикл, пока не натикает 1 секунда (на самом деле для устранения дребезга столько не нужно, но для простоты отладки сделал секунду)
- После возврата опять начинается цикл опроса кнопки.
Или то же, но кратко - включились после старта светодиоды. И горят пока кнопку не нажмёшь. Нажал - потухли, ещё раз нажал - опять включились и так до бесконечности.
Так вот, это так должно быть ! А на самом деле, после включения они начинают мигать со скоростью 1 раз в секунду. Если нажать на кнопку и держать - состояние переключается и фиксируется. При отпускании - состояние переключается и они опять погнали мигать.
Что за фигня не могу понять, при пошаговом выполнении в AVR-Studio, всё чётко работает как и задумано, а в живом контролере такая вот фигня
UPD: Всё, нашлась бага.