Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
01.06.2012, 17:28
|
|
Прописка
Регистрация: 15.06.2006
Адрес: РФ г.Тюмень
Сообщений: 205
Сказал спасибо: 3
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Счет импульсов на PIC16F84
Как посчитать просто импульсы и количество импульсов в секунду ?
|
|
|
|
01.06.2012, 17:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: СЧЕТ ИМПУЛЬСОВ НА PIC16F84
Ищите гуглом частотомер на pic16f84.
P.S. Частотомер от счетчика отличается только тем, что каждую секунду происходит сброс и счетчик считает заново.
Последний раз редактировалось alvadep; 01.06.2012 в 17:41.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
01.06.2012, 17:56
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: СЧЕТ ИМПУЛЬСОВ НА PIC16F84
Сообщение от rihkov
|
Как посчитать просто импульсы и количество импульсов в секунду ?
|
Отмерить секунду и подсчитать импульсы!
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
01.06.2012, 20:52
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: СЧЕТ ИМПУЛЬСОВ НА PIC16F84
Количество импульсов на 84-м пике? Да нет ничего проще!
Во вложении - исходник.
Для отсчета интервала 1 сек используем Таймер0, настроив коэфф. предделителя и в прерываниях по установке флага переполнения таймера и подсчитытываем количество переполнений.
Исходя из частоты контроллера, вычисляем, какой потребуется предделитель таймера и сколько должно быть переполнений. Для частоты 4 МГц - предделитель 1:256 и 15 переполнений. Но это не точно - 983 мс. Для выравнивания в последнем цикле записываем начальное значение таймера в 189 и ожидаем прерывания. Погрешность составляет +0,02%. Либо записать значение 190 и тогда
погрешность будет -0,006%. Но и ее можно убрать, приостановив таймер на последнем счете и программно циклом досчитать с точностью до периода инструкции.
Для подсчета импульсов извне, подаем их на вход RB0/INT, используем флаг INTF для обнаружения импульса. Обработав это прерывание, инкрементируем регистры подсчета импульсов.
В момент окончания отсчета интервала 1 сек фиксируем результат подсчета импульсов со входа.
Результат - 16 бит, в двух байтах.
Просто импульсы подсчитать можно точно также, только без работы модуля Таймера0.
Импользование именно прерываний и аппаратного таймера освобождает ресурсы контроллера для выполнения других задач.
|
|
|
Сказали "Спасибо" Bumbarra
|
|
|
01.06.2012, 21:12
|
|
Прописка
Регистрация: 15.06.2006
Адрес: РФ г.Тюмень
Сообщений: 205
Сказал спасибо: 3
Сказали Спасибо 19 раз(а) в 19 сообщении(ях)
|
Re: СЧЕТ ИМПУЛЬСОВ НА PIC16F84
Спасибо огромное всем за помощь, особенно Bumbarra, все теперь понятно, буду работать...
|
|
|
|
02.06.2012, 10:08
|
|
Вид на жительство
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Re: Счет импульсов на PIC16F84
Сообщение от Bumbarra
|
Количество импульсов на 84-м пике? Да нет ничего проще!
Во вложении - исходник.
|
А если частота меньше 1 Гц? Иногда удобнее считать время между соседними импульсами и рассчитывать частоту программно. Например, частоту пульса.
|
|
|
Сказали "Спасибо" zelanez
|
|
|
02.06.2012, 11:46
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: Счет импульсов на PIC16F84
А в любом случае, при методе подсчета количества импульсов за 1 сек на измеряемых частотах в несколько Герц сильно возрастает погрешность измерения, вплоть до +/-50%. Это погрешность самого метода измерения.
Тогда остается либо увеличивать интервал измерения, либо, и правда, замерять период импульса и потом операцией деления 1/t вычислять частоту. Но та таком ПИКе программное деление - эт еще та штука. Циклов на 800, по-моему... В зависимости от разрядности.
|
|
|
Сказали "Спасибо" Bumbarra
|
|
|
04.06.2012, 12:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Счет импульсов на PIC16F84
Сообщение от Bumbarra
|
Но та таком ПИКе программное деление - эт еще та штука.
|
Давно существуют апноты по 8-16-24-32 разрядной арифметике от Микрочипа - берите пользуйтесь. Или примените Си.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:51.
|
|