|
|
  |
Поддержка прерываний по фронтам, В книге одно, в CodeVisionAVR другое |
|
|
|
Dec 17 2007, 12:17
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Даже не догадался туда заглянуть. Хоть и лежит посредине рабочего стола.  После изучения datasheet`а, а также книги пришёл к выводу: Оказывается, все модели поддерживают все 4-е условия прерывания. Но лишь 2 из них имеют ещё один дополнительный вывод прерывания (INT1). В программе всё ок, в книге тоже. Всё из-за невнимательности. Спасибо за совет. Для меня урок.
|
|
|
|
|
Dec 18 2007, 07:30
|

Местный
  
Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836

|
Цитата Оказывается, все модели поддерживают все 4-е условия прерывания. Но лишь 2 из них имеют ещё один дополнительный вывод прерывания (INT1). А здесь если можно поподробнее! Стр.244 Евстифеева АВР тини-мега есть таблица определения условия генерации, в которой явно указано только три варианта: по низкому уровню, по спадающему и нарастающему фронту! По высокому зарезервировано! Очень давно разбирался с этим вопросом и для себя четко уяснил что только три условия. Оказывается не так?! Поправьте меня, если я ошибаюсь. зы: в даташите на тини2313 указано что четвертое условие (ISC11-0, ISC10-1) - это любое изменение из "0" в "1", или из "1" в "0".т.е. по любому фронту! По высокому уровню генерации прерывания нет.
Сообщение отредактировал adc - Dec 18 2007, 07:37
--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
|
|
|
|
|
Dec 18 2007, 10:11
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(adc @ Dec 18 2007, 11:30)  А здесь если можно поподробнее! Стр.244 Евстифеева АВР тини-мега есть таблица определения условия генерации, в которой явно указано только три варианта: по низкому уровню, по спадающему и нарастающему фронту! По высокому зарезервировано! Очень давно разбирался с этим вопросом и для себя четко уяснил что только три условия. Оказывается не так?! Поправьте меня, если я ошибаюсь. Поправлю  1 по низкому 2 по спадающему 3 по нарастающему 4 по изменению фронта ,тоесть при 0>1 или 1>0 Четвертое условие лично проверял на меге8. В книжках тоже ошибки бывают ,да и в даташитах встречаются  ,так что в спорных вопросах лучше самому проверить.
|
|
|
|
|
Dec 28 2007, 22:57
|

Местный
  
Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297

|
Цитата в даташите на тини2313 указано что четвертое условие (ISC11-0, ISC10-1) - это любое изменение из "0" в "1", или из "1" в "0".т.е. по любому фронту! По высокому уровню генерации прерывания нет. Всё верно. 4-ое - это при любом изменении сигнала на выводе INTn(ISCn1=0, ISCn0=1). По высокому уровню генерации прерывания нет.
|
|
|
|
|
Dec 29 2007, 08:56
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(bodja74 @ Dec 18 2007, 13:11)  Поправлю  1 по низкому 2 по спадающему 3 по нарастающему 4 по изменению фронта ,тоесть при 0>1 или 1>0 Четвертое условие лично проверял на меге8. В книжках тоже ошибки бывают ,да и в даташитах встречаются  ,так что в спорных вопросах лучше самому проверить. Да Вы посмотрите, когда была написана эта книга. Насколько я знаю, в тех кристаллах прерывание по любому фронту было действительно зарезервировано.
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
Dec 29 2007, 13:14
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Harvester @ Dec 29 2007, 12:56)  Да Вы посмотрите, когда была написана эта книга. Насколько я знаю, в тех кристаллах прерывание по любому фронту было действительно зарезервировано. Вот два скриншота , один из книги за 2007 другой из даташита за 2006 все по камням мега48\88\168 тоже скажете что камни старые
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 31 2007, 18:01
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 24-11-07
Пользователь №: 32 645

|
Может кому пригодится, при работе с прерыванием int0 в bascom 1.11.9.0 с мегой 128, происходит следующее.При записи сonfig int0 = rising (прерывание по восходящему сигналу) происходит обратное. В программе прерывания просто подымаю ногу порта(любого) вверх.Тыкаюсь осциллом а на экране обратное.Нога подымается по спаду сигнала. при записи config int0 = falling происходит тоже самое с точность до наоборот. С другими прерываниями все хорошо и работает как надо. Вот такие дела, может автор компиллера не учел, не знаю,, 9я версия как никак.Достало баги вылавливать.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|