Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как снять частоту синусоидального сигнала? (Вопрос от новичка №1)
Как снять частоту синусоидального сигнала?
AlexxNB Дата: Вс, 16.12.2007, 13:41  |                                                                                                                Сообщение # 1
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Есть синус-сигнал амплитудой 3 вольта и частотой 20кгц. Каким образом можно "почуять" изменение частоты в 1гц? Интересует самый простой вариант... =) Собираю прибор на 16F876...

ПС:
совсем новичок... Целую неделю изучал программирование ПИКов на PicBasicPro по книжке Ч.Хелибайка. Позавчера перешел на Протон(порадовался), а вчера освоил Протеус(вообще обрадовался).

ЯНДЕКС Дата: 16.12.2007
Romario Дата: Вс, 16.12.2007, 20:47  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 58
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

Один из вариантов:
Поставьте на вход МК компаратор, который будет срабатывать от 3-х вольт и выдавать импульс 5В в порт, их и считайте.
AlexxNB Дата: Вт, 18.12.2007, 00:46  |                                                                                                                Сообщение # 3
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

командой COUNTER? Попробую в протеусе....

Добавлено (18.12.2007, 06:46)
---------------------------------------------
не... команда COUNTER тут не годится. Зайдем с другой стороны.
Каким образом можно посчитать количество тактов кварца за период импульса на входе?

Yrok Дата: Вт, 18.12.2007, 10:01  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 112
Репутация: 2   ±
Замечания:   ±
На сайте с 27.09.2007

Статус: Offline

Quote
командой COUNTER? Попробую в протеусе....
Добавлено (18.12.2007, 06:46)
---------------------------------------------
не... команда COUNTER тут не годится. Зайдем с другой стороны.
Каким образом можно посчитать количество тактов кварца за период импульса на входе?

Всеравно вернешься к команде Counter и компаратору!!!!!--только кварц желательно использовать на 20 МГц.
Команда Counter как раз и считает "количество тактов кварца"))))))))))

Сообщение отредактировал Yrok - Вт, 18.12.2007, 10:02
AlexxNB Дата: Вт, 18.12.2007, 10:21  |                                                                                                                Сообщение # 5
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

counter считает вроде количество импульсов на входе за промежуток времени.... разве нет?
Yrok Дата: Вт, 18.12.2007, 15:10  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 112
Репутация: 2   ±
Замечания:   ±
На сайте с 27.09.2007

Статус: Offline

Protonom увлекался давно --и насколько помню команда Counter аналогична команде Count в PicBasicPro--поэтому воть)))
Quote
COUNT

COUNT Pin,Period,Var

Подсчитывает количество импульсов, появившихся на штырьке Pin за
период Period и передает результат в Var. Штырек автоматически
делается входом. Pin может быть константой, 0-15, или переменной,
содержащей число 0-15 (напр. B0) или имя штырька (напр. PORTA.0).

Period - в миллисекундах. Он отслеживается частотой генератора,
основанного на OSC, определенном посредством DEFINE.

COUNT проверяет состояние Pin в быстром цикле и считает переходы
уровня с низкого на высокий. С 4MHz генератором он проверяет состояние
штырька каждый 20us. С 20MHz генератором он проверяет состояние
штырька каждые 4us. Из этого можно определить, что самая верхняя
частота импульсов, которая может быть считана - 25KHz с 4MHz
генератором, и 125KHz с 20MHz генератором, если частота имеет 50%
заполнение периода (время на высоком уровне - то же, что и на низком).

Поэтому мы конечно несчитаем количество отрезков по 20 или 4 us--но прерываемся на проверку именно каждые 20 или 4 us.

AlexxNB Дата: Вс, 23.12.2007, 03:17  |                                                                                                                Сообщение # 7
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Да не COUNTER не подходит... Новые исходные данные: есть нормальный импульсный сигнал частотой 30000.1 Гц. Чтобы померить эту частоту командой COUNTER мне нужно ждать 10 секунд - не подходит. Мне нужно мерить частоту как минимум 10 раз в секунду(если чаще то лучше).
Полазал по импортным форумам - нашел тока всякие разговоры о прерываниях и внутренных таймерах. Но так ничего и не понял. Кто нибудь может подсказать принцип, или если есть время то примерчик как померить вышеуказанную частоту за минимально возможное время...

Добавлено (23.12.2007, 09:17)
---------------------------------------------
Научился снимать частоту используя CAPTURE - думаю точнее получить не удаться ни при каких раскладах

Nuken Дата: Вс, 23.12.2007, 03:22  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 1
Репутация: 0   ±
Замечания:   ±
На сайте с 05.12.2007

Статус: Offline

1) http://www.picbasic.co.uk/forum/showthread.php?s=&threadid=550
2)http://www.melabs.com/resources/samples.htm#submitted смотреть counter.zip
3) http://www.g7ltt.com/njqrp/ik3oil-counter.pdf

Сообщение отредактировал Nuken - Вс, 23.12.2007, 03:31
Alex Дата: Чт, 15.01.2009, 19:56  |                                                                                                                Сообщение # 9
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Quote
Чтобы померить эту частоту командой COUNTER мне нужно ждать 10 секунд
Не понятно почему 10 секунд. Импульсы с таким малым периодом вы можете отслеживать и в течении 100 Мс. Он вам их насчитает 3000 штук. Более чем достаточно для вычисления частоты.
Quote
сигнал частотой 30000.1
А вот что-бы доли герцов мерить, нужно измерять период. Потом делим и получаем нужную частоту.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как снять частоту синусоидального сигнала? (Вопрос от новичка №1)
  • Страница 1 из 1
  • 1
Поиск: