Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поддержка прерываний по фронтам
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Motion
Есть книга А.В. Евстифеев "Микроконтроллеры AVR семейства tiny". В ней (ст. 205-206) указано, что условия внешнего прерывания по фронтам(только по возростающему, или только по спадающему) присутствуют лишь в моделях ATtiny 2313 и ATtiny 28x. Во всех остальных моделях условия генерация внешнего прерывания наступают лишь по НИЗКОМУ уровню и при любои изменении сигнала на выводе INTn.

В программе CodeVisionAVR при использовании CodeWizzardAVR в закладке External IRQ при выборе любого МК семества режим mode можно выбрать любой, то есть если я выберу МК ATtiny 13L, то прерывание я могу выбрать по переднему фронту, хотя он сам этого условия прерывания не поддерживает(согласно книги).

Как это объяснить?

Обычно при выборе кристала количество закладок и их содержимое меняется в зависимости от МК. И режим mode тоже меняется (то есть количество пунктов меняется).

Версия программы - 1.25.7a
Сергей Борщ
Цитата(Владимир_КПИ @ Dec 17 2007, 13:11) *
Как это объяснить?
Ошибки бывают и в книгах, и в программах. Официальным документом, в котором описано "как оно есть на самом деле" является даташит. И вы, как частый посетитель этого форума, должны это знать. Навряд-ли найдутся желающие за вас открыть даташит и сделать вывод, кто же ошибся - книга или программа.
Motion
Даже не догадался туда заглянуть. Хоть и лежит посредине рабочего стола. smile.gif

После изучения datasheet`а, а также книги пришёл к выводу:

Оказывается, все модели поддерживают все 4-е условия прерывания. Но лишь 2 из них имеют ещё один дополнительный вывод прерывания (INT1).

В программе всё ок, в книге тоже. Всё из-за невнимательности.

Спасибо за совет. Для меня урок.
adc
Цитата
Оказывается, все модели поддерживают все 4-е условия прерывания. Но лишь 2 из них имеют ещё один дополнительный вывод прерывания (INT1).

А здесь если можно поподробнее! Стр.244 Евстифеева АВР тини-мега есть таблица определения условия генерации, в которой явно указано только три варианта: по низкому уровню, по спадающему и нарастающему фронту! По высокому зарезервировано! Очень давно разбирался с этим вопросом и для себя четко уяснил что только три условия. Оказывается не так?! Поправьте меня, если я ошибаюсь.
зы: в даташите на тини2313 указано что четвертое условие (ISC11-0, ISC10-1) - это любое изменение из "0" в "1", или из "1" в "0".т.е. по любому фронту! По высокому уровню генерации прерывания нет.
bodja74
Цитата(adc @ Dec 18 2007, 11:30) *
А здесь если можно поподробнее! Стр.244 Евстифеева АВР тини-мега есть таблица определения условия генерации, в которой явно указано только три варианта: по низкому уровню, по спадающему и нарастающему фронту! По высокому зарезервировано! Очень давно разбирался с этим вопросом и для себя четко уяснил что только три условия. Оказывается не так?! Поправьте меня, если я ошибаюсь.


Поправлю smile.gif
1 по низкому
2 по спадающему
3 по нарастающему
4 по изменению фронта ,тоесть при 0>1 или 1>0

Четвертое условие лично проверял на меге8.
В книжках тоже ошибки бывают ,да и в даташитах встречаются smile.gif ,так что в спорных вопросах лучше самому проверить.
Motion
Цитата
в даташите на тини2313 указано что четвертое условие (ISC11-0, ISC10-1) - это любое изменение из "0" в "1", или из "1" в "0".т.е. по любому фронту! По высокому уровню генерации прерывания нет.


Всё верно. 4-ое - это при любом изменении сигнала на выводе INTn(ISCn1=0, ISCn0=1). По высокому уровню генерации прерывания нет.
Harvester
Цитата(bodja74 @ Dec 18 2007, 13:11) *
Поправлю smile.gif
1 по низкому
2 по спадающему
3 по нарастающему
4 по изменению фронта ,тоесть при 0>1 или 1>0

Четвертое условие лично проверял на меге8.
В книжках тоже ошибки бывают ,да и в даташитах встречаются smile.gif ,так что в спорных вопросах лучше самому проверить.


Да Вы посмотрите, когда была написана эта книга. Насколько я знаю, в тех кристаллах прерывание по любому фронту было действительно зарезервировано.
bodja74
Цитата(Harvester @ Dec 29 2007, 12:56) *
Да Вы посмотрите, когда была написана эта книга. Насколько я знаю, в тех кристаллах прерывание по любому фронту было действительно зарезервировано.

Вот два скриншота ,
один из книги за 2007
другой из даташита за 2006
все по камням мега48\88\168

тоже скажете что камни старые smile.gif
ведущий_специалист
Может кому пригодится, при работе с прерыванием int0 в bascom 1.11.9.0 с мегой 128, происходит следующее.При записи
сonfig int0 = rising (прерывание по восходящему сигналу) происходит обратное. В программе прерывания просто подымаю ногу порта(любого) вверх.Тыкаюсь осциллом а на экране обратное.Нога подымается по спаду сигнала.
при записи
config int0 = falling происходит тоже самое с точность до наоборот.
С другими прерываниями все хорошо и работает как надо.
Вот такие дела, может автор компиллера не учел, не знаю,, 9я версия как никак.Достало баги вылавливать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.