Внешнее прерывание INT0

Обсуждаем контроллеры компании Atmel.
Ответить
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Коллеги, напомните, плз, какие особенности у внешних прерываний AVR. Конкретно - ATmega328P. Я настроил INT0 на срабатывание по фронту (биты ISC01 и ISC00 регистра EICRA ставил и 10, и 11 - и по заднему и по переднему фронту), взвел бит 0 (INT0) регистра EIMSK и подал на вход INT0 (PORTD бит 2) меандр 1 Гц. По идее, все, прерывание должно срабатывать раз в секунду. Однако, изба фигвам, срабатывает один раз, и тишина. Как будто надо куда-то послать сигнал подтверждения. Но ведь ничего такого не требуется? Ставил контрольную выдачу прямо в ISR(INT0_vect) - по фиг, после сброса 1 раз сработает, и тишина.

Вопрос стандартный - что я делаю не так? Блин, с этими СТМ32 совсем забыл АВР-ки...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Опытный кот
Аватара пользователя
Сообщения: 760
Зарегистрирован: Сб окт 22, 2016 17:33:32
Откуда: кг

Сообщение Карбофос »

Да никаких особенностей.
Может, контрольная выдача - запись в PORT настроенного на вход канала?
The I-bit is cleared by hardware after an interrupt has occurred, and is set by the RETI instruction to enable subsequent interrupts.
Может, через RET, а не через RETI выходите из обработчика?
Реклама
Самсусамыч

Сообщение Самсусамыч »

[uquote="afz",url="/forum/viewtopic.php?p=4103941#p4103941"]Конкретно - ATmega328P.[/uquote]
Для проверить МК… светик подключить к выводу РВ5. Если шильд ардуины, то светик уже есть на борту. :)
ATmega328.hex
akl
Друг Кота
Сообщения: 4447
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Вопрос снят. Удалил.
Последний раз редактировалось akl Пн окт 11, 2021 10:51:20, всего редактировалось 2 раза.
Реклама
Эиком - электронные компоненты и радиодетали
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Разобрался. Все оказалось гораздо проще. Поганая Ардуино Нано. Мелкая, земляных ноги всего две, да я еще и гребёнку к ней припаял ногами в сторону деталей, видимость никакая... В общем, земляной провод к индикатору я нечаянно, вместо ноги GND, напялил на ногу D2 (PD2, она же INT0), а провод с 1 Гц на ногу D3 (PD3, INT1). Земля у них все равно осталась общей, через USB, а вход INT0 оказался заземленным. Исправил, и все пошло.

Извините за беспокойство... :-)
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Ответить

Вернуться в «AVR»