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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как правилно это сделать с прерыаниями, Читал даташит, но не понял
Vny4ek
сообщение Jul 30 2009, 13:21
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Ребят, подскажите плиз, вопрос таков: Atmega8, CV
Приходит сигнал на ножку INT1 я хочу что бы при нарастающем фронте происходили (обнуление и запуск таймера) а при спадающем фронте (остановка таймера и запись его значения в переменную) и дальше опять что бы при нарастающем фронте (выполнялись какие либо операции), а при спаде (другие)?
ВСЕ что в скобках я с помощью ВАС уже понял как сделать. За это большое спасибо, но как остальное сделать ума не приложу. Какие регистры отвечают за выполенение прерывания по нарастанию и спаду знаю
// INT1: On
// INT1 Mode: Rising Edge
GICR|=0x80;
MCUCR=0x0C;
GIFR=0x80;

// INT1: On
// INT1 Mode: Falling Edge
GICR|=0x80;
MCUCR=0x08;
GIFR=0x80;
Go to the top of the page
 
+Quote Post
Vishv
сообщение Jul 30 2009, 13:33
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 310
Регистрация: 11-07-09
Из: Екатеринбург
Пользователь №: 51 154



Попробуйте сделать следующее:
1. Прерывание INT0 по любому изменению.
2. В обработчике прерывания проверяйте состояние вывода (ножка "INT0").
3. Если состояние низкое, значит прерывание вызвано спадающим фронтом, если высокое - наоборот.
Ну и в зависимости от результата делайте что нужно.
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 30 2009, 14:53
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Я пробовал так в CV ставил any change и подовал сигнал, в обработчике прерывания писал функцию вывода на дисплей она не выполнялась почему то. Хотя когда ставил rising или faling edge выполнялось. Подавал прямоугольные импульсы амплитудой 5В в протеусе.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 30 2009, 15:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Vny4ek @ Jul 30 2009, 20:53) *
Подавал прямоугольные импульсы амплитудой 5В в протеусе.
Вам вроде уже объясняли, что не нужно симулировать периферийые модули МК в моделирующей программе - этом вашем ... гм... Протеусе. Проверяйте в "железе". Потому как "практика - критерий истины". А при симуляции на ваши собственные ошибки в программе накладываются ошибки модели и/или моделирующей программы. И получается то, что у вас получается, а у других в железе работает.
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 30 2009, 16:10
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Не ну я понимаю что многие вещи в протеусе не коректно работать могут, но что бы такие элементарные, просто в железе я не смогу отладить дальше программу. Уж очень много в протеусе нужных штуковин
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 30 2009, 19:37
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Vny4ek @ Jul 30 2009, 19:10) *
Не ну я понимаю ...

Да при чём здесь некорректно? 2+2=5 это некорректно? Прерывания не вызываются - это некорректно? А может в изделии наоборот лишние будут вызываться - это некорректно?

Это просто даром потраченное время. Мало того, что результату отладки нельзя доверять, так вы ещё и не получите знаний/опыта отладки в реальном железе. И за ради чего? Вот этого я не понимаю.

Протеус нужен либо
а) Людям, которые проффессионально с ним работают. А именно: знают в подробностях как это всё работает, знают и могут создать свою переферию либо отладить изменить работающую, покупают официальные проверенные модели, гарантированно рабочие.
б) Людям, которые хотят поверхностно, в общих чертах, ознакомится с электроникой и/или программированием. То есть конечный результат "в железе" их вообще не интересует. Возможно даже и не запланирован.

Во втором случае, выбирается примитивная задача, с любым МК и проверенной переферией. Если что-то не катит, то меняют.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jul 30 2009, 22:36
Сообщение #7


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(SasaVitebsk @ Jul 30 2009, 23:37) *
Протеус нужен либо
а) Людям, которые проффессионально с ним работают. А именно: знают в подробностях как это всё работает, знают и могут создать свою переферию либо отладить изменить работающую, покупают официальные проверенные модели, гарантированно рабочие.
б) Людям, которые хотят поверхностно, в общих чертах, ознакомится с электроникой и/или программированием. То есть конечный результат "в железе" их вообще не интересует. Возможно даже и не запланирован.
Во втором случае, выбирается примитивная задача, с любым МК и проверенной переферией. Если что-то не катит, то меняют.
На самом деле не все так печально, и уж все что нужно автору топика в протеусе
делается вроде как адекватно.
Я например им пользуюсь довольно часто в случае невозможности получить (достаточно простую)железку для тестирования

Если автор топика даст свой проект(со всеми исходниками) могу глянуть,
тока конечно если там все адекватно и не потребует много времени на "лезть в даташит чтоб узнать значение битика"...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 31 2009, 01:00
Сообщение #8


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Vny4ek @ Jul 31 2009, 01:10) *
Уж очень много в протеусе нужных штуковин

Интересно услышать, каких?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Goodefine
сообщение Jul 31 2009, 06:16
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Цитата(haker_fox @ Jul 31 2009, 04:00) *
Интересно услышать, каких?

-Обширная база элементов, МК в том числе
-Точные инструменты. Вольтметр&амперметр показывают действительно действующее значение, а не среднепотолочное. Осциллограф тоже весьма неплох. Разнообразные генераторы сигналов - само собой
-Дебагеры SPI и I2C
-Возможность работать прямо из модели с реальным rs232, а для некоторых МК и с USB
-Доступна пошаговая отладка на Си, со всеми видимыми переменными.
- Как бонус возможность экспортировать схему в лайот редактор
-Исключительно точная симуляция ШИМа
-Очень быстрая симуляция, во многих случаях в реальном времени (даже в шахматы не в напряг играть)
...
Хватит?
На самом деле, есть и некоторые подводные камни, но они непринципиальны. Легко обходятся практически без ущерба. Не следует, например ожидать, что если включите светодиод в 220В то он сгорит. Будет нормально светить, даже без предупреждений...
За все время припоминаю только один существенный глюк - не вызывался обработчик прерывания по захвату таймера от компаратора в m16.
Proteus - это инструмент, которым надо уметь пользоваться, имеющий свои достоинства и недостатки. Хороший инструмент...


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 31 2009, 06:30
Сообщение #10


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Vny4ek @ Jul 30 2009, 16:21) *
... и дальше опять что бы при нарастающем фронте (выполнялись какие либо операции), а при спаде (другие)?

А вот это уже сложняк-с. Если хочется вменяемого времени реакции на прерывание, такое надо выпиливать на ассемблере, причем полный текст прерывания.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 31 2009, 06:59
Сообщение #11


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(Goodefine @ Jul 31 2009, 09:16) *
Цитата(haker_fox @ Jul 31 2009, 04:00) *

Интересно услышать, каких?

-Обширная база элементов, МК в том числе
....
Хватит?


Это все не то. Самое главное, что в нем есть - это SPICE-симулятор аналоговых делов, скрещенный с симуляцией микроконтроллеров. Я вот приловчился в нем импульсные источники питания на основе микроконтроллеров симулить и отлаживать. Немного с бубном (из-за кривоватой симуляции МК), но работает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Vny4ek
сообщение Jul 31 2009, 08:34
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 145
Регистрация: 11-01-08
Пользователь №: 34 001



Вот я положил архив там 2 файла исходник на С для кодвижена и проект в протеусе. В проекте можно использовать и генератор импульсов и аудио файл закинуть (ну это я просто имея файл где есть импульсы разной длительностью 400мкс -800мкс)
Прикрепленные файлы
Прикрепленный файл  ELECTRONIX.ZIP ( 14.84 килобайт ) Кол-во скачиваний: 23
 
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jul 31 2009, 22:00
Сообщение #13


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Vny4ek @ Jul 30 2009, 18:53) *
Я пробовал так в CV ставил any change и подовал сигнал, в обработчике прерывания писал функцию вывода на дисплей она не выполнялась почему то. Хотя когда ставил rising или faling edge выполнялось. Подавал прямоугольные импульсы амплитудой 5В в протеусе.
Простите, но в присланом архиве намека на какую-нить программу я не обнаружил,
там только "скелет" инициализации сделаный CV...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Aug 1 2009, 11:20
Сообщение #14


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Rst7 @ Jul 31 2009, 15:59) *
Немного с бубном (из-за кривоватой симуляции МК), но работает.

Насколько я понимаю, источники питания не любят, когда их ошибочно проектируют. Особенно силовые) Видимо Ваш опыт позволяет видеть некоторые глюки симулятора и обходить их?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 2 2009, 08:56
Сообщение #15


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Видимо Ваш опыт позволяет видеть некоторые глюки симулятора и обходить их?


Да причем тут опыт. Оно ж видно все. Особенно, в крайних случаях (ATtiny25, TMR1 затактирован от PLL)
Код
res_ovf_minus:
    CLR    VL
#ifdef PROTEUS
    INC    VL
#endif
    OUT    OCR1A,VL


Совсем ему худо в протеусе при нолике в OCR wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

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

 


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


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