Всем привет! Решил задаться вымышленной задачкой следующего характера: С помощью обычного генератора выдаем функцию (напр. прямоугольные импульсы). Затем на аналоговый (!) вход контроллера подаем этот самый сигнал. Контроллер взят CP1L-EM. Написана простейшая программа которая сравнивает значение аналогового входа с нулем - если значение больше нуля, то с помощью инструкции KEEP присваиваем единицу. Если значение равно нулю, то сбрасываем KEEP. Далее простой инкрементальный счетчик с учетом времени (таймер 1 сек) по переднему фронту KEEP. (счетчик сбрасывается по отрицательному фронту таймера) На практике выявилось следующее - прекрасно считает частоты до 35-38 Гц, но с частотами выше описанный алгоритм уже не работает, просто выдает 0 или около того. У меня есть две версии возможных причин: 1) время преобразования АЦП 2) нужно переработать алгоритм (каким-то образом) для более высоких частот. Что Вы думаете?
|