roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллер AVR начинающим - общие вопросы

contr » 25 дек 2009, 14:23

возможно флаг прерывания сбросить забыли

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 25 дек 2009, 14:26

Нужно прерывание по спаду, а не по низкому уровню. Если "все" перечитать еще раз, это станет понятно

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 25 дек 2009, 14:48

к561ЛА7 писал(а): Все перечитал ничего не пойму.


Процитируйте ПОЖАЛУЙСТА тут то что вы прочитали про прерывание по низкому уровню.

Re: МикроКонтроллер AVR начинающим - общие вопросы

к561ЛА7 » 25 дек 2009, 15:30

по фронту иимпульса ногой дкргает один раз, но в тело прогаммы не идет.
А как сбросить влаг прерывания?

Добавлено спустя 16 минут 1 секунду:
Прочитал вот что : При возникновении прерывания выполняется последняя инструкция, запоминаеется место останова и программа идет в обработчик прерывания. По окончании кода, написанного в обработчике пре6рывания, автоматически сбрасывается флаг прерывания (для этого вроде должна кодвизардом автоматически добавляться какаято строка, но у меня ее нет почему то) и программ идет обратно в основной цикл.

Прерывания управляется регистрами. Записью 1 можно включить возмодность возникновения прерывания, запись 0 - выключить. (младшие биты регитстра управления прерываниями) Также можно задать условие возникновения прерывания - по уроню или по спаду (старшие биты этого регитсра)

пишу по памяти, как запомнил

Re: МикроКонтроллер AVR начинающим - общие вопросы

contr » 25 дек 2009, 15:35

А как сбросить влаг прерывания?

Мне для этого dsh на Ваш контроллер изучать придется :(
Там где-то есть регистр в котором при возникновении события один и битов устанавливается в "1". Вот ее и нужно сбросить, когда прерывание обработали.

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 25 дек 2009, 15:42

Флаг сбрасывается аппаратно при входе в обработчик прерывания. contr, изучи все же даташит прежде чем советы писать.

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 25 дек 2009, 15:45

ВНИМАТЕЛЬНО надо читать и неспеша, думая о том что прочитал. Просто читать бесполезно.

к561ЛА7 писал(а): А как сбросить влаг прерывания?
в вашей цитате написано кодгда он автоматически сбрасывется ( но цитируете вы не верно ! ) Вы пишите: "по-памяти" - значит запомнили не верно момент очистки флага.

А там откуда вы цитируете - http://avr123.nm.ru/03.htm
КРУПНО ВЫДЕЛЕНО как флаги прерываний можно очищать програмно.
Вложения
int.png

Re: МикроКонтроллер AVR начинающим - общие вопросы

к561ЛА7 » 25 дек 2009, 15:53

пишу в конце обработчика
SREG.7=1;

и все равно программа в основной цикл не идет
Контроллер атмега 8

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 25 дек 2009, 15:54

Всю программу покажи

Re: МикроКонтроллер AVR начинающим - общие вопросы

contr » 25 дек 2009, 15:57

Флаг сбрасывается аппаратно при входе в обработчик прерывания.

Возможно, в тех МК которые я пользую такого не происходит. Да и в инструкции от avr123 про программный сброс сказано.
пишу в конце обработчика SREG.7=1;

Это бит общего разрешения прерываний, а сбросить нужно флаг конкретного прерывания.
Последний раз редактировалось contr 25 дек 2009, 16:29, всего редактировалось 1 раз.

Re: МикроКонтроллер AVR начинающим - общие вопросы

blindman » 25 дек 2009, 16:04

Ага, а в тех что я использую прерывания ваще как класс отсутствуют. И че это я про них тут не пишу?

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 25 дек 2009, 19:20

к561ЛА7 писал(а):пишу в конце обработчика
SREG.7=1;


Вы объясните ЗАЧЕМ вы это пишите ? Т.е. что вы надеетесь получить от этой записи.

Я очень советую после каждой строчки писать КОММЕНТАРИЙ на русском - что она делает.

ПРОШУ ВАС !!! Начните уже читать ВНИМАТЕЛЬНО и НЕ СПЕША !!!

=== пельмешки без спешки :good:

=
Вложения
AVR прерывания курс avr123.nm.png

Re: МикроКонтроллер AVR начинающим - общие вопросы

к561ЛА7 » 25 дек 2009, 23:10

Спасибо большое за помощь, вродебы заработало. В чем причина так и нек понял. Убрал все инструкции goto_mesto_ и переписал все заново.
Убрал все задержки, на момент окончания которых почемуто контоллер выдавал короткий импульс на выходы.
В железе контроллер почему-то не хочет отрабатывать короткие импульсы на входе прерывания, и воспринимает за импульсы наводки если оставить провод в воздухе

Спасибо contr, blindman,avr123.nm.ru, osc,yak-40, statistic

Может быть я всетаки соберу это устройство и куплю свим деткам конфеток

Re: МикроКонтроллер AVR начинающим - общие вопросы

avr123.nm.ru » 25 дек 2009, 23:20

> на момент окончания которых почемуто контоллер выдавал короткий импульс на выходы.

В PROTEUS на эти выходы ставьте точку останова - рассказано на страничке http://proteus123.narod.ru - прога встанет в паузу в этом месте, далее смотрите в регистрах и в тексте и т.п. причину выдачи импульса.

Re: МикроКонтроллер AVR начинающим - общие вопросы

osc » 31 дек 2009, 13:15

А вот у меня вопрос, тип Char может хранить только 1 символ, а если мне нужно передать через uart трехзначное число, то как это сделать?


cron
Rambler\'s Top100 Mail.ru counter