Atmega16: обработка нажатий кнопок в часах (ассемблер)

Обсуждаем контроллеры компании Atmel.
Ответить
tux
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Чт сен 20, 2012 11:57:28
Откуда: Владивосток
Контактная информация:

Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение tux »

Помогите доделать часы. Уже разобрался с выводом информации на ССИ, с отсчетом времени. Теперь никак не получается сделать установку времени через нажатия кнопок. Прикладываю свою програмулю. Либо подскажите, что неправильно в ней, либо хотя приведите пример как это сделать правильно (на ассемблере, ибо си я практически не знаю). Вывод на дисплей там рабочий, как и отсчёт времени.
Вложения
Clock_Buttons.asm
(7.81 КБ) 356 скачиваний
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение ChipKiller »

tux писал(а): Уже разобрался с выводом информации на ССИ, с отсчетом времени. Теперь никак не получается сделать установку времени через нажатия кнопок. ....... Либо подскажите, что неправильно в ней, либо хотя приведите пример как это сделать правильно ....
.. такие часы будут работать плохо
1. информацию на ССИ удобно обновлять в прерывании (там же ведут опрос кнопок )
2. по-хорошему для часов используют внешнюю микросхему (например DS1307)
пример динамической индикации
tux
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Чт сен 20, 2012 11:57:28
Откуда: Владивосток
Контактная информация:

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение tux »

Я по большей части эти часы делаю лишь для обучалки. И ССИ у меня на данный момент работает. Хочется с кнопками разобраться. Потом уже допиливать буду
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение BOB51 »

Скинь схемку устройства - тогды и побеседуем. Можно в личку, дабы повторами форум не перегружать. :beer:
tux
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Чт сен 20, 2012 11:57:28
Откуда: Владивосток
Контактная информация:

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение tux »

Помучил еще свой код. Опробовал протеус. В нем даже почти все работает. Почему то при выводе на ССИ последняя и первая цифра на всех значениях кроме 0 отображается как 8. Обработчик кнопок виртуально вроде как работает. На реальном железе почему то отказывается вся эта беда работать. Первоначально мигает - потом все вообще тухнет. Укажите, пожалуйста, на косяк. Замучился уже с этими часами
Вложения
Clock_with_Button.zip
программа на ассемблере
(3.07 КБ) 211 скачиваний
clock.zip
Файл протеуса
(19.46 КБ) 202 скачивания
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)

Сообщение BOB51 »

Прийдется наверное все заново писать... 8)
Отдельно модуль регенерации дисплея (возможно совмещение со сканером клавиатуры) и отдельно модуль подсчета времени. Плюс программа обработки/дешифрации показаний под индикатор, обработчик клавиатуры (захват и обработка состояния кнопок /выполнение текущей директивы ввода).
Обмен данными через буфер вывода дисплея в момент окончания цикла развертки (если данная функция разрешена/затребована). Главное прерывание - формирователь тайм-сетки выставляет только флаг запроса (максимально короткий интервал. Дальнейшие действия определяет диспетчер задачи в конце каждой строки развертки дисплея или же задача выполняется в фоновом режиме, при условии, что регенерация дисплея выполняется автономно по второму прерыванию (в этом случае должно быть разрешено вложенное прерывание генератора тайм-сетки).
На мегу 16-ю вряд-ли посодействую, лень материал готовить. Могу набросать для тиньки 2313 или мега8515/мега162. Кстати, у 40-выводных МК возможность управления дисплеем гораздо проще - можно и статикой ограничиться!
:beer:
Ответить

Вернуться в «AVR»