3 / 3 / 0
Регистрация: 26.10.2013
Сообщений: 42
|
||||||
1 | ||||||
Atmega48 и прерывание INT104.06.2015, 09:08. Показов 3061. Ответов 3
Метки нет (Все метки)
Всем доброе утром.
Пытаюсь сделать следующее задание: Первоначально включены светодиоды с нечетными номерами. Используется прерывание INT1. В обработчике прерывания INT1 необходимо обеспечить следующее: - при нечетном вызове прерывания выключает все ранее включенные светодиоды и разрешает включать и выключать любые светодиоды вновь путем нажатия на соответствующие кнопки; - при четном вызове прерывания INT1 запрещается изменять состояние светодиодов. Но непонимаю, как подключить прерывание. Есть следующая нароботка:
Как я понимаю, надо сделать счетчик нажатий кнопки, и потом вычисляя четное кол-во или нет настроить прерывание. Но как это сделать ума не приложу . Буду благодарен за помощь.
0
|
04.06.2015, 09:08 | |
Ответы с готовыми решениями:
3
AVR Studia: При поступлении запроса на прерывание по входу INT1 считать содержимое ячейки памяти Проблема с прерываниями INT0 и INT1 Вывод адреса команд (по прерыванию int1) В чем отличия между int1 и int 1? |
11 / 11 / 1
Регистрация: 14.07.2014
Сообщений: 186
|
|
04.06.2015, 11:32 | 2 |
Не очень понял задание,
нечетный вызов?? это всмысле кнопка нажата нечетное количество раз?? и ещё..у каждого светодиода есть соответствующая кнопка?? Счетчик нажатия, можно по разному сделать..например назначить таймеру внешнее тактирование от кнопки, и в нужный момент лицезреть ее значение.. включение/выключение светодиодов можно устроить записав например в unsigned char байт соответствующий бит включения светодиода, и передавать в соответствующий порт, так же статус включенных светодиодов можно узнать из этого unsigned char байта)
0
|
3 / 3 / 0
Регистрация: 26.10.2013
Сообщений: 42
|
||||||
04.06.2015, 13:01 [ТС] | 3 | |||||
Забыл добавить, добавил еще кнопку на порт PD5.
И тогде я понял так, что если кнопка, которая вызывает прерывание, нажата нечетное кол-во раз, то все диоды гаснут, и при нажатии на кнопку которая на PD5 зажигается соответсвтующий диод. Добавлено через 26 минут Пытаюсь сделать основу. Пока получилось только такое, но все равно не реагирует ни на какую кнопку.
0
|
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
|
|
08.06.2015, 11:24 | 4 |
Вот ты записал в PORTD ноль
зачем тогда проверяешь на это равенство ? Ясно ведь, что не равно. Или ты путаешь PORTD и PIND ? В Atmega48 есть PORTD и PIND ? У других Avr-ов различие между чтением с выходных защелок (PORTD) и входов (PIND) было. В отличие от микроконтроллеров других семейств, где все делалось бы через один PORTD.
0
|
08.06.2015, 11:24 | |
08.06.2015, 11:24 | |
Помогаю со студенческими работами здесь
4
Не срабатывают внешние прерывания INT0/INT1 в Atmega8 Организация прерывания по INT0,INT1 (AVR ATmega8535) ADXL345 сброс состояния ноги прерывания (INT1, INT2) Timer1 подсчитать интервал в миллисек. между INT1 (Tiny2313) Программа, которая по прерыванию на входе INT1 (OMK-51) выводит разницу двух чисел на линии порта 2 Часы на МК ATMega48 UART на ATmega48 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |