Есть тз:
- К микроконтроллеру подключен дисплей(любой) 16х2 (к каким портам - без разницы)
- К микроконтроллеру подключены 4 кнопки(влево вправо вниз вверх)(к каким портам - без разницы)
- Используя прерывание от таймера Timer2 реализовать работу часов
- На эран вывести меню вида:
>Время
Дата
При нажатиии в меню кнопки 'вниз' 'галка' перемещается ниже:
Время
>Дата
При нажатиии 'вверх' выше.
При нажатии 'Вправо' если 'галка' находится на 'Время' Вывести на экран текущее время вида ЧЧ:MM:СС
если нажать еще раз 'Вправо' -дается возможность редактировать текущее время:
под ЧЧ появляется курсор '_' и кнопками вверх-вниз можно изменять тек. значение
в данном режиме редактирования кнопкой далее происходит перемещение по редактируемым переменным и курсора по кольцу Ч->М->С->Ч->М->С..
Выходить из режима редактирования - кнопкой "Влево"
если 'галка' находится на 'Дата' Вывести тек дату ДД/ММ/ГГГГ
-//-//- редактирование аналогично
Как я планирую сделать это задание:
1. Делать решил в cvavr 2.05.0, эмуляция в протеусе.
2. Для себя решил, что для начала нужно попробовать просто вывести что то на экран. В cvavr выбрал lcd 16x2 к порту А, вывел тестовое сообщение - получилось.
3. Далее решил подключить 4 кнопки и так сказать "увидеть" их в коде. Т.е попытаться понять как работать с кнопками, например при нажатии каждой кнопки зажеч соответствующий это кнопке светодиод.
Вот сдесь затруднения. Примеры работы с одной и двумя кнопками я находил, а вот с 3 или более нет.
Как "ловить" нажатие кнопок так понимаю есть несколько вариантов, прерывания и проверка битов в цыкле маин.
Конечно хотелось бы сделать прерыванием, но я так понял что есть только 2 прерывания int0 и int1, т.е для 2х кнопок.
Вот тут прошу совета, т.к плохо представляю этот этап себе.
Когда разберусь с этим этапом думаю дальше будет двигаться легче.



