0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 51
|
|||||||||||
1 | |||||||||||
Таймер на Atmega 8 с LED дисплеем08.06.2018, 20:02. Показов 2281. Ответов 5
Метки нет (Все метки)
Доброго времени суток. Пытаюсь собрать таймер с LED индикатором на восьмой атмеге. Замысел такой в нулевом таймере крутится динамическая индикация и опрос кнопок, а непосредственно отсчёт 1 секунды идёт в первом таймере. Если использовать только нулевой таймер для индикации и непосредственно отсчёта то всё как бы работает но точности ни какой, при включении прерывания и по первому таймеру выставленное значение постоянно сбрасывается даже если обработчик прерывания TIMER1_COMPA_vect пуст.
более менее рабочий вариант
0
|
08.06.2018, 20:02 | |
Ответы с готовыми решениями:
5
ATmega AVR таймер atmega 8 сторожевой таймер Таймер Atmega 128 Не хочет работать таймер ATMega 2560 Таймер УФ-LED с самообучением на 3 пресета на ATtiny13 |
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
|
|
09.06.2018, 00:00 | 2 |
chip_exe, а описать назначение устройства (включая "кнопки") и прислать его схему в протеусе вам не позволяет религия, или данный таймер является сверхсекретной разработкой министерства обороны для полного уничтожения США в радиоактивный пепел?
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,884
|
|
09.06.2018, 10:33 | 3 |
А переменные объявлены как volatile?
0
|
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 51
|
|
09.06.2018, 16:36 [ТС] | 4 |
Переменные обвалены как unsigned char.
Вот схема и исходники
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,884
|
|
09.06.2018, 19:44 | 5 |
А должны быть как
volatile unsigned char . Этот модификатор запрещает компилятору кэшировать переменные.Ну и еще внутри функций (в т.ч. прерываний) стоит подумать об использовании static переменных вместо глобальных.
0
|
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 51
|
|||||||||||
10.06.2018, 15:44 [ТС] | 6 | ||||||||||
Я вот не могу понять оставляю только прерывание по нулевому таймеру
и этот участок кода работает нормально
Добавлено через 19 часов 8 минут У меня оба прерывания по таймеру срабатывали при переполнении но стоило поставить прерывание первого таймера по совпадению как всё начало работать как и задумывалось.
0
|
10.06.2018, 15:44 | |
10.06.2018, 15:44 | |
Помогаю со студенческими работами здесь
6
Загораются LED CPU; LED VGA; LED DRAM. потом тухнут и компьютер перезагружается WDT таймер срабатывает без задержки ATmega 328 Таймер в Atmega 328 не хочет считать до ICR1 (Toggle OC1A) Нулевой таймер на срабатывание прерывания раз в сек (Atmega 8515) При включении красным по очереди загораются DRAM LED, VGA LED, BOOT DEVICE LED. При этом все работает Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |