Не правильно выразился, яркость меняется, только с разной скоростью. В шапке алгоритма в текстовом разделе я написал что куда подключено, кнопка на INT0, светляк на вывод OC0A, в программе задается 3 режима изменения яркости. Кнопка весит на прерывании INT0, при нажатии кнопки должен установиться флаг прерывания, а в программе есть место, где устанавливается разрешение на прерывание. В этом месте счётчик переходит на обработку прерывания, в котором увеличивается регистр r18. По возвращении из прерывания программа считывает на сколько раз был увеличен r18 (максимум 3 раза) и в зависимости от этого выбирает на какое число будет увеличиваться или уменьшаться регистр OCR0A. Вот и всё. Вывод INT0 подтянут внутренним резистором к +5, ШИМ настроен на автоматическое изменение состояния вывода при совпадении с регистром OCR0A. Вот только у меня при нажатии кнопки ничего не происходит, программа не переходит на 2 и 3 режимы. Такое ощущение, что не устанавливается флаг прерывания по нажатию кнопки. Проц attiny 2313. Извиняюсь, программу сейчас перезалью, в предыдущем посте старая версия.
|