Появилась необходимость в приборе реализовать измерение частоты/периода/фазы. Диапазон - от 1кгц до 50кГц. Камни 16й серии, захват частоты при помощи модуля CCP, таймер 1 с предделителем 1:1, частота кварца 20мГц. Компилятор HITECH PICC, ЯЗЫК - С.
Про фазу вопрос оставлю на потом, еще нужно для начала додумать логику перед процами.
А вот про частоту и период вопрос. На бумаге это легко сосчитать.
1 тик таймера - 0.0000002 сек, при 10кгц будет 500 отсчетов, соответственно 200ns*500=100us, 1/100us=10кгц. С периодом все так же.
Как это реализовать в мк, ибо с дробными числами возится не комильфо?
для точности достаточно четыре знака, т.е 12,34кГц, т.е по сути считать в герцах, но единицы герц не показывать ибо они не нужны(просто знать примерную частоту)
Вычисление периода/частоты/фазы.
- Реклама
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Вычисление периода/частоты/фазы.
При 20MHz 1 МЦ (машиннъй цикл) 200nS => 1s = 5 000 000 MЦ/отсчета, если есть 500 отсчета то 5 000 000 / 500 = 10 000HZ Если необходимо в кHz переставляем точку. Можно и сдвиг влево.
Деление:
Если на С - все в порядке, если на ASM возникает вопрос: Как делить? 5 000 000 ето 24битовое число, а отсчет для 100Hz (50000 отсчета) 16 битовое число => делим 24бит на 16 бит - ето в помощь http://www.piclist.com/techref/microchi ... /index.htm
Деление:
Если на С - все в порядке, если на ASM возникает вопрос: Как делить? 5 000 000 ето 24битовое число, а отсчет для 100Hz (50000 отсчета) 16 битовое число => делим 24бит на 16 бит - ето в помощь http://www.piclist.com/techref/microchi ... /index.htm
Лом - ето город в Болгарии, а не инструмент юстировки електроники.
Re: Вычисление периода/частоты/фазы.
Предлагаешь просто поделить как есть, без извратов и танцев с бубном?
- botchin
- Поставщик валерьянки для Кота
- Сообщения: 2029
- Зарегистрирован: Чт дек 27, 2012 20:46:09
- Откуда: Болгария, г. Лом
Re: Вычисление периода/частоты/фазы.
А чем такой метод - без изврата и бубна - вас не устроиваеть?
Для периода: 1 отсчет 0,2uS => 5 отсчета 1 uS. => количестви отсчетов *5 и переставляем десетичную точку. Результат в микроСекунд.
Недостаток - в младшем разряде, после точки, всегда будут 0 или 5 т.е. 6 отсчета 3,0, 7 - 3,5
Для периода: 1 отсчет 0,2uS => 5 отсчета 1 uS. => количестви отсчетов *5 и переставляем десетичную точку. Результат в микроСекунд.
Недостаток - в младшем разряде, после точки, всегда будут 0 или 5 т.е. 6 отсчета 3,0, 7 - 3,5
Лом - ето город в Болгарии, а не инструмент юстировки електроники.

