Pic12F675
|
|
доцент2 |
Дата: Вт, 11.02.2014, 21:48 | Сообщение # 16 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Цитата Alexandr280480 ( ) Ошибка не в коде, а в формуле преобразования АЦП!!! к тому же в твоем примере отсутствовала конфигурация контроллера.
|
|
|
|
G2212 |
Дата: Ср, 16.04.2014, 12:28 | Сообщение # 17 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 06.11.2012
Статус:
Offline
|
Не стал создавать новой темы, т.к. вопрос по 675, 629 камню. У этих МК нет модуля ССР, а мне нужно сделать 2 непрерывных прямоугольных сигнала с разными но кратными частотами. И еще необходимо отслеживать питание батареи и в случае уменьшения подавать звуковой сигнал. С частотой что-то странное, если 1 непрерывный сигнал никаких проблем - хороший меандр, если больше то какие-то чудеса - все сигналы с одинаковой частотой только с разной скважностью. Вот задание: 1) Непрерывная генерация прямоугольного сигнала 6,5кГц / 13 кГц (желательно меандр) (выбирается переключателем) GPIO.3. 2) Непрерывная генерация прямоугольного сигнала 52кгц. Синхронизация преобразователя отрицательного напряжения. 3) Контроль напряжения источника питания GPIO.0 с выдачей периодического прерывистого звукового сигнала при достижении заданного порога.
6,5x2=13 кГц 6,5х8= 52кГц. Мучаюсь вторую неделю. Решение пока не найдено. Подскажите как добиться , если возможно. Может нужно внешний кварц, но тогда не хватит свободных ножек. Читал на форуме что задачу можно решить с помощью прерываний но образца кода не нашел.
Сообщение отредактировал
G2212 - Чт, 17.04.2014, 10:37
|
|
|
|
holyuser |
Дата: Чт, 17.04.2014, 10:21 | Сообщение # 18 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Внешний кварц абсолютно необходим, если Вы собираетесь применить сие устройство в металлодетекторе, потому что у внутреннего генератора очень высокий уровень фазовых шумов из-за ФАПЧ.
|
|
|
|
G2212 |
Дата: Чт, 17.04.2014, 10:34 | Сообщение # 19 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 06.11.2012
Статус:
Offline
|
Цитата holyuser ( ) Вы собираетесь применить сие устройство в металлодетекторе, потому что у внутреннего генератора очень высокий уровень фазовых шумов из-за ФАПЧ. Спасибо за подсказку, это у-во действительно планируется в модернизацию металлодетектора. Есть желание убрать генератор и делитель частоты и заменить одним МК. Буду делать с кварцем. Что можете посоветовать с 2-мя независимыми постоянными прямоугольными сигналами?
|
|
|
|
holyuser |
Дата: Чт, 17.04.2014, 10:46 | Сообщение # 20 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Один сигнал, я так понимаю, это накачка, а второй - звук? А частота звука какая, приблизительно?
|
|
|
|
G2212 |
Дата: Чт, 17.04.2014, 12:40 | Сообщение # 21 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 06.11.2012
Статус:
Offline
|
Цитата holyuser ( ) Один сигнал, я так понимаю, это накачка, а второй - звук? Накачка 6.5 кГц или 13 кГц (двух частотный прибор). 52 кГц нужно для преобразователя чтобы получить отрицательное напряжение. Звук в этом приборе с VCO выдает CD4046. А обычно звук 400- 500 Гц.
Сообщение отредактировал
G2212 - Чт, 17.04.2014, 17:48
|
|
|
|
holyuser |
Дата: Чт, 17.04.2014, 17:08 | Сообщение # 22 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Я бы сделал примерно так: (частота кварца 20 МГц) В таймер TMR0 загружается 207 (255 - 48 = 207) 48 - эго количество машинных циклов равняющихся полупериоду 52 кГц (точное значение 52,083 кГц). Потом ожидается в цикле переполнение таймера. При переполнении снова загружается 207 (минус количество тактов на выполнение самой загрузки). Потом переключается соотв. выход 52 кГц. Потом инкрементируетса некая переменная, до 4 или 8 соотв. для ТХ 13 кГц или 6,5 кГц (точные значения 13,020 кГц и 6,51 кГц). Потом проверка - не пора ли переключить выход ТХ, если да, то делаем что надо и обнуляем переменную. Потом делаем другое, что нужно (например запуск АЦП, или проверка и чтение, если преобразование уже завершилось). Потом опять ожидаем переполнение таймера и так далее... Надо помнить, что на все действия у нас должно хватить 48 машинных цикла с некоторым запасом. С АЦП надо работать "ручками", т.к. оператор бейсика непригоден.
|
|
|
|
G2212 |
Дата: Чт, 17.04.2014, 17:47 | Сообщение # 23 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 06.11.2012
Статус:
Offline
|
Спасибо holyuser попробую написать по этому алгоритму.
|
|
|
|