Всем привет!
Подскажите, плз, как проще всего ПРОГРАММНО определить наличие внешнего меандра с частотой в сотни Герц на ножке Мега8, например, PD2/INT0?
Спасибо!
Как определить есть ли на ножке МК меандр?
-
Alkul
- Держит паяльник хвостом
- Сообщения: 933
- Зарегистрирован: Ср апр 13, 2011 11:09:20
- Откуда: Екатеринбург
Re: Как определить есть ли на ножке МК меандр?
Vlad399 писал(а):как проще всего ПРОГРАММНО определить наличие внешнего меандра с частотой в сотни Герц на ножке Мега8, например, PD2/INT0?
Меандр в ТТЛ-уровнях?
Определить нужно однократно или постоянно контролировать наличие меандра?
Re: Как определить есть ли на ножке МК меандр?
Да, TTL.
Контролировать надо периодически, что бы засечь момент пропадания меандра.
Спасибо за внимание к моей проблеме.
Контролировать надо периодически, что бы засечь момент пропадания меандра.
Спасибо за внимание к моей проблеме.
- Deer
- Прорезались зубы
- Сообщения: 211
- Зарегистрирован: Пт июл 31, 2009 19:45:11
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Как определить есть ли на ножке МК меандр?
На ножке периодически проверять уровень и запоминать длительность наличия там нуля и длительность наличия единицы. Запоминать в раздельных переменных. Если обе переменные находятся в заданных пределах (пределы определяются временными параметрами сигнала и частотой опроса пина), значит меандр есть, и он нужной частоты. Если хоть одна переменная из двух имеет значение вне заданных для неё пределов, значит меандр не подаётся
Re: Как определить есть ли на ножке МК меандр?
Похоже, я сам нашел одно из возможных решений проблемы - если меандр подаётся на ножку INT0, то можно опрашивать флаг INTF0 в регистре GIFR. Если INTF0==1, то сбрасываем его, занося туда единицу т.к. "the flag can be cleared by writing a logical one to it" и, если при следующем опросе он опять ==1, то меандр есть, в противном случае меандр пропал.
Осталось проверить идею.
Осталось проверить идею.
- c2n
- Сверлит текстолит когтями
- Сообщения: 1193
- Зарегистрирован: Ср июл 25, 2012 21:40:09
- Откуда: Самара
- Контактная информация:
Re: Как определить есть ли на ножке МК меандр?
Относительно АВРок 8бит, так
можно делать и не по INT0 а по любому INT и PCINT.
При этом на INT0 можно детектировать в разных вариантах:
нарастающий, спадающий, смена состояния сигнала...
у PCINT только смена состояния....
Соответственно инициировать прерывание, ну а далее - тело дехники
При этом надо иметь ввиду, что данная операция прерывания с опросами запоминаниями и прочим займет +/- 10 тактов машинного времени, и может случиться так, что частота меандра попадет в "резонанс" по нижнему или верхнему уровню например, и детектирование начнет врать с частотой...
Если знать точнее, что от схемы требуется, то было бы проще поDOOMать
ЕСЛИ НУЖЕН ПРОСТО ФАКТ НАЛИЧИЯ СИГНАЛА.
На практике же разумней было бы через транзистор повторять меандр, Эмиттерным повторителем например, далее сглаживать конденсатором, получая эквивалентное напряжение, и анализировать его через АЦП некоторых МК, например тини13, 26... у которых есть ADC.
т.к. меандр - частный случай Широтно-импульсной модуляции = 50%. тоесть в эквиваленте ТТЛ уровня = 2,5В.
Так будет надежней.
У товарища D-Halt'а - практически детское питание
//разжевано
http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-shim.html
Если совсем никак нельзя воспользоваться МК с АЦП, там же можно поискать про R2R АЦП/ЦАП, и собрать детектор на ОУ в режиме компаратора.
Ну а описание меандра в википедии: (до кучи)
http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B0%D0%BD%D0%B4%D1%80_%28%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0%29
Vlad399 писал(а):Похоже, я сам нашел одно из возможных решений проблемы
можно делать и не по INT0 а по любому INT и PCINT.
При этом на INT0 можно детектировать в разных вариантах:
нарастающий, спадающий, смена состояния сигнала...
у PCINT только смена состояния....
Соответственно инициировать прерывание, ну а далее - тело дехники
При этом надо иметь ввиду, что данная операция прерывания с опросами запоминаниями и прочим займет +/- 10 тактов машинного времени, и может случиться так, что частота меандра попадет в "резонанс" по нижнему или верхнему уровню например, и детектирование начнет врать с частотой...
Если знать точнее, что от схемы требуется, то было бы проще поDOOMать
ЕСЛИ НУЖЕН ПРОСТО ФАКТ НАЛИЧИЯ СИГНАЛА.
На практике же разумней было бы через транзистор повторять меандр, Эмиттерным повторителем например, далее сглаживать конденсатором, получая эквивалентное напряжение, и анализировать его через АЦП некоторых МК, например тини13, 26... у которых есть ADC.
т.к. меандр - частный случай Широтно-импульсной модуляции = 50%. тоесть в эквиваленте ТТЛ уровня = 2,5В.
Так будет надежней.
У товарища D-Halt'а - практически детское питание
//разжеваноhttp://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-shim.html
Если совсем никак нельзя воспользоваться МК с АЦП, там же можно поискать про R2R АЦП/ЦАП, и собрать детектор на ОУ в режиме компаратора.
Ну а описание меандра в википедии: (до кучи)
http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B0%D0%BD%D0%B4%D1%80_%28%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B0%29