Не стал создавать новой темы, т.к. вопрос по 675, 629 камню. У этих МК нет модуля ССР, а мне нужно сделать 2 непрерывных прямоугольных сигнала с разными но кратными частотами. И еще необходимо отслеживать питание батареи и в случае уменьшения подавать звуковой сигнал. С частотой что-то странное, если 1 непрерывный сигнал никаких проблем - хороший меандр, если больше то какие-то чудеса - все сигналы с одинаковой частотой только с разной скважностью. Вот задание: 1) Непрерывная генерация прямоугольного сигнала 6,5кГц / 13 кГц (желательно меандр) (выбирается переключателем) GPIO.3. 2) Непрерывная генерация прямоугольного сигнала 52кгц. Синхронизация преобразователя отрицательного напряжения. 3) Контроль напряжения источника питания GPIO.0 с выдачей периодического прерывистого звукового сигнала при достижении заданного порога.
6,5x2=13 кГц 6,5х8= 52кГц. Мучаюсь вторую неделю. Решение пока не найдено. Подскажите как добиться , если возможно. Может нужно внешний кварц, но тогда не хватит свободных ножек. Читал на форуме что задачу можно решить с помощью прерываний но образца кода не нашел.
Внешний кварц абсолютно необходим, если Вы собираетесь применить сие устройство в металлодетекторе, потому что у внутреннего генератора очень высокий уровень фазовых шумов из-за ФАПЧ.
Вы собираетесь применить сие устройство в металлодетекторе, потому что у внутреннего генератора очень высокий уровень фазовых шумов из-за ФАПЧ.
Спасибо за подсказку, это у-во действительно планируется в модернизацию металлодетектора. Есть желание убрать генератор и делитель частоты и заменить одним МК. Буду делать с кварцем. Что можете посоветовать с 2-мя независимыми постоянными прямоугольными сигналами?
Один сигнал, я так понимаю, это накачка, а второй - звук?
Накачка 6.5 кГц или 13 кГц (двух частотный прибор). 52 кГц нужно для преобразователя чтобы получить отрицательное напряжение. Звук в этом приборе с VCO выдает CD4046. А обычно звук 400- 500 Гц.
Сообщение отредактировал
G2212 - Чт, 17.04.2014, 17:48
Я бы сделал примерно так: (частота кварца 20 МГц) В таймер TMR0 загружается 207 (255 - 48 = 207) 48 - эго количество машинных циклов равняющихся полупериоду 52 кГц (точное значение 52,083 кГц). Потом ожидается в цикле переполнение таймера. При переполнении снова загружается 207 (минус количество тактов на выполнение самой загрузки). Потом переключается соотв. выход 52 кГц. Потом инкрементируетса некая переменная, до 4 или 8 соотв. для ТХ 13 кГц или 6,5 кГц (точные значения 13,020 кГц и 6,51 кГц). Потом проверка - не пора ли переключить выход ТХ, если да, то делаем что надо и обнуляем переменную. Потом делаем другое, что нужно (например запуск АЦП, или проверка и чтение, если преобразование уже завершилось). Потом опять ожидаем переполнение таймера и так далее... Надо помнить, что на все действия у нас должно хватить 48 машинных цикла с некоторым запасом. С АЦП надо работать "ручками", т.к. оператор бейсика непригоден.