AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
03.03.2016, 00:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от Godzilla82
|
Вам бы _delay_ms(9). Но за это посадить могут.
|
Правильно, посадить. Прямо на костёр ![Мамба](images/smilies/icon_mamba.gif)
У контроллера таймеры есть? Есть! Вот пусть один займётся делом, посчитает до 9мс. Досчитает - мигнёт прерыванием: "ожидание фронта включай".
|
|
|
|
04.03.2016, 23:56
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от makakus
|
Вот поймали вы прерывание, по спаду. Следующее придёт через 10мс, да? Ну так и выключите прерывание на 9,9 мс, например. От греха. (Кстати, а что будет, если прерывание возникнет посередине периода?)
|
А что, эта идея мне очень понравилась.
Правда, надо не просто отсчитывать задержку таймером в прерывании, но по заднему фронту счетчика таймера (при переходе с 1 в 0) Сбросить на всякий случай флаг INT0, потому, что как только разрешишь прерывания оно тут же возникнет. А потом разрешить прерывания. В общем я подправил проект с первых постов. Прогнал задержку - получилась чуть больше 800 мкс. на частоте 1 Мгц.
|
|
|
|
07.03.2016, 13:33
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от МВА
|
А что, эта идея мне очень понравилась.
Правда, надо не просто отсчитывать задержку таймером в прерывании, но по заднему фронту счетчика таймера (при переходе с 1 в 0) Сбросить на всякий случай флаг INT0, потому, что как только разрешишь прерывания оно тут же возникнет. А потом разрешить прерывания. В общем я подправил проект с первых постов. Прогнал задержку - получилась чуть больше 800 мкс. на частоте 1 Мгц.
|
Я пробовал что то подобное. Написанно конечно не так красиво было.Но работало.
Вообще я изобритаю цифровой регулятор мощьности галогенных ламп.Как оказалось, отключать прерывание INT0 на 9 ms нет смысла.МК ловит помехи именно при переходе через ноль.Когда я сделал зеро кросс на PC817 поставил фильтры.Он вообще стал идеально работать.Пошел на сварочный участок и попросил поварить сварщика мощьным трансформаторным сварочником.Потом инверторным.Все четко.
Ни разу не сбилса.Работало без каких либо блокировок прерывания.
Код Ваш интересный.Буду изучать.
Впринципе тему можно закрывать.Но после праздника еще кое какие моменты выложу для отчетности.Хочу детектор нуля собрать на какомнибудь MOC с детектором ноля.
|
|
|
|
07.03.2016, 13:36
|
|
Временная регистрация
Регистрация: 24.03.2015
Адрес: Россия. г.Новосибирск
Сообщений: 69
Сказал спасибо: 12
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от МВА
|
Прогнал задержку - получилась чуть больше 800 мкс. на частоте 1 Мгц.
|
Извините.Не внимательно прочитал.Вы же и блокировали прерывание когда контроллер в него заходил.А не когда идет полупериод
|
|
|
|
07.03.2016, 22:17
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от ARTEM277
|
Извините.Не внимательно прочитал.Вы же и блокировали прерывание когда контроллер в него заходил.А не когда идет полупериод
|
Ну... так и было задумано. Судя из выложенных осциллограмм Как раз сразу после прерывания идет следующее. А так, как в прерывании мы запретили прерывание на величину задержки, и если следом поднялся флаг, то перед разрешением мы его сбрасываем и ожидаем нового.
|
|
|
|
08.03.2016, 19:58
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Как вам такой рекомендованный алгоритм?
|
|
|
|
08.03.2016, 20:26
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от Vovan_G5
|
Как вам такой рекомендованный алгоритм?
|
Нет, не нравится. Во первых - цикл хоть и короткий, но удлиняет прерывание. Детектор нуля держит низкий уровень длиннее 5 циклов проверки ноги, так что уже бесполезно. А если после выхода прерывания проскочит иголка и опять вызовется, кстати прерывание работает по заднему фронту.
|
|
|
|
08.03.2016, 20:52
|
|
Частый гость
Регистрация: 28.09.2015
Сообщений: 21
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Ну придет иголка, ну заскочит в прерывание, проверит 5 раз, а иголки уже и нет....
|
|
|
|
08.03.2016, 22:44
|
|
Гражданин KAZUS.RU
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Сообщение от Vovan_G5
|
Ну придет иголка, ну заскочит в прерывание, проверит 5 раз, а иголки уже и нет....
|
А если проверка промахнется на иголку? Или игла придет после прерывания? Даже с учетом 5 проверок длительность прерывания не более 20-30 мкс.
|
|
|
|
09.03.2016, 00:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,000
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
|
Re: Attiny 26L глючит прерывание INT0
Так "игла" или пачка их? В Атмеловском примере как-бы мажорирование используется...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:24.
|
|