Страница 1 из 1
Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Вс июн 02, 2013 08:53:22
tux
Помогите доделать часы. Уже разобрался с выводом информации на ССИ, с отсчетом времени. Теперь никак не получается сделать установку времени через нажатия кнопок. Прикладываю свою програмулю. Либо подскажите, что неправильно в ней, либо хотя приведите пример как это сделать правильно (на ассемблере, ибо си я практически не знаю). Вывод на дисплей там рабочий, как и отсчёт времени.
Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Вс июн 02, 2013 11:50:29
ChipKiller
tux писал(а): Уже разобрался с выводом информации на ССИ, с отсчетом времени. Теперь никак не получается сделать установку времени через нажатия кнопок. ....... Либо подскажите, что неправильно в ней, либо хотя приведите пример как это сделать правильно ....
.. такие часы будут работать плохо
1. информацию на ССИ удобно обновлять в прерывании (там же ведут опрос кнопок )
2. по-хорошему для часов используют внешнюю микросхему (например DS1307)
пример
динамической индикации
Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Вс июн 02, 2013 13:09:21
tux
Я по большей части эти часы делаю лишь для обучалки. И ССИ у меня на данный момент работает. Хочется с кнопками разобраться. Потом уже допиливать буду
Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Пн июн 03, 2013 07:14:21
BOB51
Скинь схемку устройства - тогды и побеседуем. Можно в личку, дабы повторами форум не перегружать.

Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Ср июл 10, 2013 04:33:50
tux
Помучил еще свой код. Опробовал протеус. В нем даже почти все работает. Почему то при выводе на ССИ последняя и первая цифра на всех значениях кроме 0 отображается как 8. Обработчик кнопок виртуально вроде как работает. На реальном железе почему то отказывается вся эта беда работать. Первоначально мигает - потом все вообще тухнет. Укажите, пожалуйста, на косяк. Замучился уже с этими часами
Re: Atmega16: обработка нажатий кнопок в часах (ассемблер)
Добавлено: Сб июл 13, 2013 03:15:37
BOB51
Прийдется наверное все заново писать...
Отдельно модуль регенерации дисплея (возможно совмещение со сканером клавиатуры) и отдельно модуль подсчета времени. Плюс программа обработки/дешифрации показаний под индикатор, обработчик клавиатуры (захват и обработка состояния кнопок /выполнение текущей директивы ввода).
Обмен данными через буфер вывода дисплея в момент окончания цикла развертки (если данная функция разрешена/затребована). Главное прерывание - формирователь тайм-сетки выставляет только флаг запроса (максимально короткий интервал. Дальнейшие действия определяет диспетчер задачи в конце каждой строки развертки дисплея или же задача выполняется в фоновом режиме, при условии, что регенерация дисплея выполняется автономно по второму прерыванию (в этом случае должно быть разрешено вложенное прерывание генератора тайм-сетки).
На мегу 16-ю вряд-ли посодействую, лень материал готовить. Могу набросать для тиньки 2313 или мега8515/мега162. Кстати, у 40-выводных МК возможность управления дисплеем гораздо проще - можно и статикой ограничиться!
