Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывести импульсы в зависимости от пол и отр полуволны синусоиды
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
DronDro
Здравствуйте!Помогите!
На выходе нужно получить вот такие импульсы.
Использую компаратор для считывания сигналов с датчиков, которые реагируют на переходы синусоиды через ноль.
Также прерывание компаратора, пробовал и таймер при захвате компаратора.
Чисто теоретически нужно разбить синусоиду на 6 частей и в зависимости от полуволны (пол, отр) выдавать импульсы на PORTC.
Т.е. если пол полуволна, то в 1 промеж-к времени PORTC=0b0000001, 2 пром. PORTC=0b0000101, 3 промеж PORTC=0b0000100, потом
синусоида переходит через ноль и начинается отр полуволна , 4 промеж-к PORTC=0b0000010, 5 промеж-к PORTC=0b0001010, 6 промеж
PORTC=0b0001000.
Вот схема протеуса, вот что смог напичать, пишу в CVAVR.
Не получается справиться задачей. Помогите, я уже запутался, не понимаю как справиться с задачей((. crying.gif
kovigor
Цитата(DronDro @ Apr 15 2014, 14:01) *
Помогите, я уже запутался, не понимаю как справиться с задачей((. crying.gif

Если частота синусоиды примерно постоянна, то можно сделать так.
В обработчике прерывания от компаратора устанавливаем флажок, разрешающий формирование импульса. Если этот флажок установлен, то обработчик прерывания от таймера, который, например, выполняется 1000 раз в секунду, устанавливает в единичку соотв. ножку порта и по истечении N прерываний от таймера опять устанавливает ее в ноль, после чего сбрасывает флажок, установленный ранее обработчиком прерывания от компаратора. Со следующим прерыванием от компаратора цикл повторяется. Но можно вообще обойтись без прерываний, реализовав простейший опрос выхода компаратора ...
domowoj
1.Чего уж проще, измеряйте период, делите на 6 и по достижении счетчика
периода числа, соответствующего требуемой величины(период/6*n, где n = 1,2,...6)
взводите/сбрасывайте соответствующие биты вых. порта.
2.Можно еще извратиться и подстроить тактовую частоту генератора кратной
частоте синусоиды, деленной на шесть, и выполнить пункт 1.
Abell
Как вариант - выпрямитель и детектор положительной-отрицательной полуволн, с выпрямителя по любой полуволне генерировать прерывание МК, при обработке прерывания контролировать состояние детектора по другому входу - и выдавать соответствующий код на выход. Как-то так laughing.gif
P.S. Упс, пардон, не заметил, что надо еще части синусоиды кодировать laughing.gif
DronDro
может кто поможет с реализацией данной задачи, пишите в личку
kovigor
Цитата(DronDro @ Apr 16 2014, 20:23) *
может кто поможет с реализацией данной задачи, пишите в личку

Так вам нужно разобраться для себя ? Тогда задавайте здесь конкретные вопросы.
domowoj
А частота синусоиды какая?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.