![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.10.2011
Сообщений: 74
|
![]()
Здравствуйте! Пожалуйста, помогите. Изучаю ассемблер, хочу написать программу для зажигания светодиодов от кнопки.
Светодиоды подключены к выводам PD6 и PD7 и через резисторы - на общий провод, кнопка - на PE4. Нажатие кнопки должно генерировать прерывание на зажигание одного светодиода, при следующем нажатии кнопки загорается второй светодиод, при этом первый светодиод гаснет. Таким образом, светодиоды должны загораться от кнопки попеременно. При 1-м,2-м,3-м (т.е. нечетных) нажатиях должна выполняться подпрограмма для зажигания 1-ого светодиода, при четных - подпрограмма для зажигание второго светодиода. Как это осуществить с помощью команды "исключающее или"? Вот что пока получилось: Код:
Последний раз редактировалось Stilet; 12.10.2011 в 08:27. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
![]()
Не думал, что чтобы помочь надо всё сначала проверить. Адреса прерываний не совпадают. по адресу 0x0002 находится INT0, а это вывод PD0. Нет объявленной процедуры Reset и.т.д. Извините, но не стал лепить к самолёту плуг в виде EOR. И оставил объявленное прерывание INT0, поэтому поменяйте кнопку на PD0 или выберете другое прерывание. Защиту от дребезга если потребуется добавите сами.
Код:
Последний раз редактировалось С.М.С; 12.10.2011 в 23:31. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.10.2011
Сообщений: 74
|
![]()
Первый блин комом.. =)Спасибо за помощь огромное! =)
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 04.10.2011
Сообщений: 74
|
![]()
Начала разбираться, появились вопросы:
Разве можно в моделе ATmega128 использовать регистры GIMSK и MCUCR? Кажется,для этой модели контроллера для внешних прерываний существуют следующие регистры: EIMSK – регистр для разрешения/запрещения внешних прерываний EICRA и EICRB – регистры, определяющие условия генерации EIFR – регистр, предназначенный для индикации возникновения внешних прерываний Так же нужно учесть флаг I регистра SREG Как при этом для генерации по низкому уровню использовать регистры EICRA и EICRB. И вообще, как их использовать? Почему их два и одинаковые ли они выполняют роли? Для чего в подпрограмме Мain: нужно ждать 2 машинных цикла? И почему после выполнения команды nop сразу перебрасывает к переходу на EXT_INT0, вместо того, чтобы выполнить следующий nop, а затем jmp Main? |
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 29.12.2008
Сообщений: 1,598
|
![]() Цитата:
GIMSK = EIMSK это определоно в описание адресов и констант Код:
команды nop показаны, что в процедуре MAIN, что-то может выполняться, в место того, чтобы в пустую молотить в ожидании нажатия кнопки. Что бы всё работало в отладчике поставьте бит PDO это PIND0, что соответствует высокому уровню на входе МК. Для того чтобы с эмитировать нажатие кнопки снимите этот бит. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 04.10.2011
Сообщений: 74
|
![]()
Ура! =) Ваши проги помогли! Спасибо =)
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 04.10.2011
Сообщений: 74
|
![]()
Появились новые вопросы:
1. Чтобы светодиоды загорались от нажатия кнопки на клавиатуре, достаточно будет одностороннего режима? (т.е. инициализируем USART не на прием/передачу, а лишь на прием) И можно ли так делать вообще? 2. Какие линии отвечают за клавиатуру? |
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 22.06.2012
Сообщений: 2
|
![]()
Вы можете мне помочь сделать один прибор? Ищу знающего человека. Есть заказ.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
кнопки | Артэс | Win Api | 10 | 08.12.2009 20:04 |
Кнопки | Принц | HTML и CSS | 1 | 29.05.2008 17:25 |
UCOZ: Кнопки кнопки на изображении | ReDuX | HTML и CSS | 19 | 25.04.2008 02:39 |
Кнопки | )Игнат( | Компоненты Delphi | 21 | 22.01.2008 09:35 |
триггерные кнопки и кнопки переключатели в DELPHI | MARGO | Помощь студентам | 3 | 12.11.2007 17:35 |