Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: int0 в AT90PWM3
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
fla
Помогите настроить внешние прерывания. Со многим остальным удалось разобраться...

.cseg
.org 0x0000
rjmp reset
.org 0x000a
rjmp int0_
...
ldi r16,(0<<isc31)|(0<<isc30)|(0<<isc21)|(0<<isc20)|(0<<isc11)|(0<<isc10)|(0<<isc01)|(0<<isc00)
sts eicra,r16
ldi r16,(0<<int3)|(0<<int2)|(0<<int1)|(1<<int0)
sts eimsk,r16
...
sei
...
lds r16,eifr
sbrc r16,intf0
rjmp stop
...

int0_:
rjmp stop

Пробовал 2 варианта обработки прерывания - как подпрограмма int0_: или проверка флага intf0. Простая проверка состояния вывода - работает, при появления 0 выполняется подпрограмма стоп.
sbis pind,6
rjmp stop

В целом прерывания другого типа исполняются, как например вариант работы АЦП. Где что я упустил? Может дело в программаторе AS3M или AVR Studio 4.12SP4? Симулятор не использую, отлаживаю в рабочей плате.

Кстати, такой баг - стоит только потревожить ячейку таймера-счетчика 0 "tccr0a", как контроллер виснет...
DeXteR
А в АВР студии отлаживали ??
Нормально ли выполняются команды
sts eicra,r16 ??
Там не OUT eicra,r16 нужно ??
fla
Команда OUT здесь приводит к ошибке, только STS.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.