Низко частотный частотомер на AVR проблема с исчислением

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Низко частотный частотомер на AVR проблема с исчислением

Сообщение aleksandr88 »

:shock: Сталкнулся я с такой трудностью нужен частотомер с диапазоном от 1-100Гц.С начало подумал просто считать импульсы с таймере Т0.Все нормально но не выводит десятичное число.Решил пойти другим путём и использовать два таймера Т1 и Т0 .На Т0 подою импульс и начинаю мерить его продолжительность таймером Т1.Все тоже хорошо работает но не получается выстроить линейку :cry: :cry: .Разница в измерении таймера при переходе со 100 до 99Гц ровна 14 тактам счётчика Т1 а при переходи с 10 на 9Гц счётчик отчитывает 1390 тиков.
Вот ниже проект в протусе и CVAVR.

ПОМОГИТЕ :)) Заранее спасибо)))
Вложения
1.rar
(53.26 КБ) 169 скачиваний
Реклама
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение Coviraylhik »

Вот уже готовый универсальный проект частотомера с диапазоном 0.0001 герц и до предела тактования таймера(20-24 мегагерца без предделителя)
Тема здесь http://radiokot.ru/forum/viewtopic.php? ... 00#p924500
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
Реклама
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

это все хорошо :) но мне нужен код сишный или хотя бы алгоритм простой так как мне надо это встроить в один приборчик и отводить на индикацию не более 5 символов LCD
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение Coviraylhik »

Все файлы с исходником в форуме есть, не знаю он на си или сях вот архив http://radiokot.ru/forum/download/file.php?id=69785 который лежит в форуме, которым сам я и пользуюсь....
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
Реклама
Эиком - электронные компоненты и радиодетали
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

О благодарю =).Есть пища для размышления теперь буду разбирать исходник :))
Реклама
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

Вот у меня еще не большой вопрос.На дисплеи как я понял самая верхняя строка это вывод частоты но показание при подачи 10Гц там показывает 22884.324 :shock:
Реклама
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение Coviraylhik »

Да теперь наверное что написано в том форуме прочитать 18 страниц никто не одолеет :(
10Гц там показывает 22884.324
Конечно же там по умолчанию стоит коэфициент WattsPerHz = 2250.0 поставь через меню число 10 и будет чистый частотомер.... :)
Вот здесь я по своему усмотрению этот материал обобщил.
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

Да 18 страниц многовато но сейчас попробую осилить :) Coviraylhik вы мня сильно не пинайте я начинающий=) но вот странная штука какая я меняю множитель в двух местах переменную WattsPerHz но множитель остаётся прежним :cry: ,сейчас лазию по коду и пытаюсь понять в чем причина.
Аватара пользователя
Coviraylhik
Мучитель микросхем
Сообщения: 420
Зарегистрирован: Чт июн 03, 2010 23:06:12

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение Coviraylhik »

Да ненадо сразу по коду лазить , все изменения вносятся через меню кнопками управления....
Сначала берете готовое и пользуетесь. В протеусе проект прекрасно симулируется 1 к 1, можно посмотреть что там к чему.
После пробы как есть, можно и усовершенствованием проекта заняться :)
Если там лишние вкусности убирать, так это не сложно, а вот добавить что, так это уж серьезней задача.
Некакого перимирия, Некаких мирных шагов навстречу и периговоров.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение clawham »

если вам нужен только частотомер то
берете и ищите темы на этом форуме где я уже разжевывал что да как по поводу частотомера...
суть в измерении времени в тактах кварца между импульсами а потом делаем тактовая частота/кол-во успевших прийти тактов
результат - герцы 0.000001 герца...по идее точность вниз неограничена...только терпением :)))
код там прост....всё остальное вокруг - удобности
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

clawham писал(а):если вам нужен только частотомер то
берете и ищите темы на этом форуме где я уже разжевывал что да как по поводу частотомера...
суть в измерении времени в тактах кварца между импульсами а потом делаем тактовая частота/кол-во успевших прийти тактов
результат - герцы 0.000001 герца...по идее точность вниз неограничена...только терпением :)))
код там прост....всё остальное вокруг - удобности
Я так и пытаюсь вычислять путём измерения количество тиков таймера Т1 в один герц :) .Но как превратить это значение в линейку я не как не до пру :cry: :cry: вот у мня на частоте десять герц длительность импульса составляет 1160000 тиков таймера Т1 а на ста герцах длительность импульса 164000 это при делителе таймера Т1 на 0.и при тактовой частоте частоте 8Мг .Я в тупики прочитал много инфы но самой сути не нашёл :cry:
Coviraylhik писал(а):Да ненадо сразу по коду лазить , все изменения вносятся через меню кнопками управления....
Сначала берете готовое и пользуетесь. В протеусе проект прекрасно симулируется 1 к 1, можно посмотреть что там к чему.
После пробы как есть, можно и усовершенствованием проекта заняться :)
Если там лишние вкусности убирать, так это не сложно, а вот добавить что, так это уж серьезней задача.
Эх все дела во вкусняшках их там не мало :hunger: :) Последние время я пытаюсь их разобрать но из за их не малого количества это для меня оказалось сложновато :cry: .У вас случаем не осталось начального проекта без дополнительных функций который было бы легче усвоить или отделено только частотомер :solder:
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение akl »

aleksandr88 писал(а):Я так и пытаюсь вычислять путём измерения количество тиков таймера Т1 в один герц :) .Но как превратить это значение в линейку я не как не до пру :cry: :cry: вот у мня на частоте десять герц длительность импульса составляет 1160000 тиков таймера Т1 а на ста герцах длительность импульса 164000 это при делителе таймера Т1 на 0.и при тактовой частоте частоте 8Мг .Я в тупики прочитал много инфы но самой сути не нашёл
Странные какие-то числа. У меня получаются совсем другие
Fclk=8'000'000 Гц, т. е. за 1 секунду будет 8'000'000 тиков таймера Т1
При частоте 10Гц, т.е. 10 колебаний в секунду будет 800'000 тиков таймера Т1
При частоте 100Гц, т.е. 100 колебаний в секунду будет 80'000 тиков таймера Т1
При частоте 49,987Гц, т.е. 49,987 колебаний в секунду будет 160'041 тиков таймера Т1 и частота вычисляемая по таким данным будет равна 49,987190782362019732443561337407Гц. Подчеркнутое составляет погрешность дискретизации, для уменьшения которой следует увеличить время измерения, т. е. измерять не один период, а несколько.
Допустим время измерения принимается равным 0.2 секунды. За это время пройдет 9.98 периодов измеряемой частоты, но никто не может запретить не останавливать таймер. В соответствии с принятым алгоритмом нужно подсчитать число тиков таймера за время прохождения ЦЕЛОГО числа периодов измеряемой частоты. Тогда за время прохождения 10 периодов измеряемой частоты таймер накопит 1'600'416. И вычисленное значение частоты будет 49,987003379121428428608561773939Гц с гораздо меньшей погрешностью.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение aleksandr88 »

akl а вот у мня странная штука .Как вы писали я так вот делаю при 1 Мг частоты такта измерение Т1 рано при
1Гц 971'000 ну почти правильно
10Гц 73'000
100Гц 7'000 тиков

а должно вить быть при 10Гц 100'000 тиков а при 100Гц 10'000 тиков в чем может быль проблема
исходник простой контроллер вроде не грузится O_o
Вы не могли бы глянуть проект в чем причина ?
Вложения
частотомер166.rar
(115.48 КБ) 197 скачиваний
akl
Друг Кота
Сообщения: 4445
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Низко частотный частотомер на AVR проблема с исчисление

Сообщение akl »

К счастью, для таких целей мне вполне хватает 2313-й. Могу предложить в качестве примера код от уважаемого мною =GM=. Виртуоза этого дела. К сожалению, не помню откуда стырил этот код
FR_GM.TXT
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»