Прерывание происходят при любом изменении уровня.

Обсуждаем контроллеры компании Atmel.
Ответить
креазот
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср фев 04, 2015 21:08:59

Прерывание происходят при любом изменении уровня.

Сообщение креазот »

интересное дело..
открываю даташит на атмегу64а, страница 88, про регистр EICRB который определяет условия по которым происходит генерация прерываний для INT7...INT4
и вижу таблицу вконце страницы для битов ISCn1 и ISCn0 при их значениях 01 в таблице значится Reserved, тоесть вроде как по смыслу зарезервировано, не используется, хотя в тексте выше есть некий намек что есть условие для генерации прерывния по любому изменению уровня, это я так предполагаю что там написано, потому как использовал корявый перевод гугла. но если не знаешь толком английского или не заострять внимание, а просто взглянуть на таблицу то такого режима там нет, написано- зарезервировано. остальные по спаду, фронту, и низкому уровню.

но на самом деле если биты регистра EICRB ISCn1 ISCn0 выставить в 01 то прерывания будут генеририроваться и по спаду и по фронту. непонятно, почему они явно не указали это в таблице?

кстати в официальном даташите на атмегу 128 тоже ни фига не указано что если выставить значения битов 01 то прерывания будут генерироваться при любом изменении уровня
однако в сети гуляет русский перевод на атмегу 128, вот в нем в таблице и написано что при значении битов 01 прерывание генерируется при любом изменении уровня на INT7-INT4
после того как я наткнулся на это, решил проверить в авр студии на атмеге 64а, и действительно прерывание в симуляторе происходят при любом изменении уровня на INT7-INT4

собственно, незнаю, возможно один я только об этом незнал, но меня удивляют эти составители даташитов. зачем нужно было писать что это положение зарезервировано, хотя на самом деле оно работает
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25149
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Интересное дело..

Сообщение КРАМ »

Недокументированые фичи в МК - достаточно распространенное явление.
Если в даташите не гарантируется фича, то она может в принципе в очередной ревизии кристалла исчезнуть, либо работать некорректно в одном из режимов использования.
креазот
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср фев 04, 2015 21:08:59

Re: Интересное дело..

Сообщение креазот »

надо в железе проверить.
в любом случае в авр студии это работает, если работает значит программисты знали об этой возможности и целенаправленно внесли ее в программу... я так думаю

вот из даташита на атмегу 64а, может если кто хорошо знает английский скажет, есть ли тут явное упоминание о режиме при котором генерируется прерывание по любому изменению уровня на INT

The External Interrupts 7 - 4 are activated by the external pins INT7:4 if the SREG I-flag and the
corresponding interrupt mask in the EIMSK is set. The level and edges on the external pins that activate
the interrupts are defined in table Interrupt Sense Control below. The value on the INT7:4 pins are
sampled before detecting edges. If edge or toggle interrupt is selected, pulses that last longer than one
clock period will generate an interrupt. Shorter pulses are not guaranteed to generate an interrupt.
Observe that CPU clock frequency can be lower than the XTAL frequency if the XTAL divider is enabled.
If low level interrupt is selected, the low level must be held until the completion of the currently executing
instruction to generate an interrupt. If enabled, a level triggered interrupt will generate an interrupt request
as long as the pin is held low.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Интересное дело..

Сообщение uk8amk »

У меня документация не очень свежая(mega64/L, mega64A) и там из табличек видно, что EICRA не может генерировать прерывания по любому изменению, а EICRB может.
креазот
Встал на лапы
Сообщения: 135
Зарегистрирован: Ср фев 04, 2015 21:08:59

Re: Прерывание происходят при любом изменении уровня.

Сообщение креазот »

а вот скрин из "моего" даташита, на атмегу64а. там кстати и дата указана внизу рядом с числом страницы. сентябрь 15го года
Изображение
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Прерывание происходят при любом изменении уровня.

Сообщение uk8amk »

Страница из PDF которым я пользуюсь.
Вложения
ATMEGA64A_Страница_066.png
(70.46 КБ) 321 скачивание
Ответить

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