реклама на сайте
подробности

 
 
> int0 в AT90PWM3, не могу включить внешние прерывания
fla
сообщение May 14 2007, 05:18
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 14-05-07
Пользователь №: 27 703



Помогите настроить внешние прерывания. Со многим остальным удалось разобраться...

.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", как контроллер виснет...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 09:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01372 секунд с 7
ELECTRONIX ©2004-2016