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

 
 
 
Reply to this topicStart new topic
> Поддержка прерываний по фронтам, В книге одно, в CodeVisionAVR другое
Motion
сообщение Dec 17 2007, 11:11
Сообщение #1


Местный
***

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



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

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

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

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

Версия программы - 1.25.7a
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 17 2007, 11:43
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Motion
сообщение Dec 17 2007, 12:17
Сообщение #3


Местный
***

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



Даже не догадался туда заглянуть. Хоть и лежит посредине рабочего стола. smile.gif

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

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

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

Спасибо за совет. Для меня урок.
Go to the top of the page
 
+Quote Post
adc
сообщение Dec 18 2007, 07:30
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 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


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 18 2007, 10:11
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



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


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

Четвертое условие лично проверял на меге8.
В книжках тоже ошибки бывают ,да и в даташитах встречаются smile.gif ,так что в спорных вопросах лучше самому проверить.
Go to the top of the page
 
+Quote Post
Motion
сообщение Dec 28 2007, 22:57
Сообщение #6


Местный
***

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



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


Всё верно. 4-ое - это при любом изменении сигнала на выводе INTn(ISCn1=0, ISCn0=1). По высокому уровню генерации прерывания нет.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Dec 29 2007, 08:56
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(bodja74 @ Dec 18 2007, 13:11) *
Поправлю smile.gif
1 по низкому
2 по спадающему
3 по нарастающему
4 по изменению фронта ,тоесть при 0>1 или 1>0

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


Да Вы посмотрите, когда была написана эта книга. Насколько я знаю, в тех кристаллах прерывание по любому фронту было действительно зарезервировано.


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
bodja74
сообщение Dec 29 2007, 13:14
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



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

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

тоже скажете что камни старые smile.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ведущий_специали...
сообщение Dec 31 2007, 18:01
Сообщение #9


Участник
*

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



Может кому пригодится, при работе с прерыванием int0 в bascom 1.11.9.0 с мегой 128, происходит следующее.При записи
сonfig int0 = rising (прерывание по восходящему сигналу) происходит обратное. В программе прерывания просто подымаю ногу порта(любого) вверх.Тыкаюсь осциллом а на экране обратное.Нога подымается по спаду сигнала.
при записи
config int0 = falling происходит тоже самое с точность до наоборот.
С другими прерываниями все хорошо и работает как надо.
Вот такие дела, может автор компиллера не учел, не знаю,, 9я версия как никак.Достало баги вылавливать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:20
Рейтинг@Mail.ru


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