Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как частоту посчитать?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Коляй
Ребята, как правильнее посчитать частоту для вывода на ЖКИ в нормальном виде?
Частота получается по прерыванию таймера 1.
частота таймера 1 - Clock/8.
прерывание по совпадению.
в СОМРА число 0х2050, которое будет меняться.
Хотелось бы что бы на ЖКИ была частота в Гц.
Частота будет от 70 до 250 Гц., десятичный вывод есть.
Трёх знаков на ЖКИ хватит. Кварц на 8м.
Спасибо. (с математикой туговато всегда было)
defunct
Цитата(Коляй @ Jul 23 2006, 18:01) *
Хотелось бы что бы на ЖКИ была частота в Гц.


Ну так и выведите на LCD строку "1 Hz".


Либо уточните вопрос.
defunct
Два способа оценки частоты:

1-й на основе захвата длительности периода, может дать очень высокую точность. Timer завести в режиме Input Capture от аналогового компаратора. Частота будет расчитываться по формуле Fosc/(ICR - ICR_saved).

2-й на основе подсчета импульсов за секунду (потребуется таймер, который обеспечит вызов прерывания один раз в секунду и счетчик который за эту секунду подсчитает количество импульсов). По прерыванию таймера выводить значение счетчика на экран и обнулять счетчик.
Коляй
Спасибо. Извиняюсь.
Вопрос в том, как привязать число, которое в регистре сравнения таймера СОМРА к показаниям частоты? Считать саму частоту не надо, надо её показать. Вот с этим числом 0х2050 получается около 70-80 Гц (не 1 Гц!). Но число будет меняться (задаваться). И от него на ЖКИ число тоже должно меняться.
Если бы было прямая зависимость, больше число - больше частота, я бы и сам посчитал как-нить. Но тут обратная, чем больше число, тем меньше частота, по-этому затрудняюсь.
defunct
Цитата(Коляй @ Jul 23 2006, 18:40) *
Спасибо. Извиняюсь.
Вопрос в том, как привязать число, которое в регистре сравнения таймера СОМРА к показаниям частоты? Считать саму частоту не надо, надо её показать. Вот с этим числом 0х2050 получается около 70-80 Гц (не 1 Гц!). Но число будет меняться (задаваться). И от него на ЖКИ число тоже должно меняться.

Я Вас не понимаю...
Уточните что нужно сделать:
мерять частоту тактового генератора? Или частоту внешнего сигнала. Если второе, то какой природы сигнал - амплитуда и форма.

Ваш способ решения похоже совсем неверный, поэтому давайте Вы больше не будете упоминать о COMPA и о его значении. А просто сформулируете целевую задачу. Уверен здесь с радостью Вам помогут.


Цитата
70-80 Гц (не 1 Гц!).

Очевидно что-то нужно разделить на 70-80...
xemul
Цитата(Коляй @ Jul 23 2006, 19:40) *
Спасибо. Извиняюсь.
Вопрос в том, как привязать число, которое в регистре сравнения таймера СОМРА к показаниям частоты? Считать саму частоту не надо, надо её показать. Вот с этим числом 0х2050 получается около 70-80 Гц (не 1 Гц!). Но число будет меняться (задаваться). И от него на ЖКИ число тоже должно меняться.
Если бы было прямая зависимость, больше число - больше частота, я бы и сам посчитал как-нить. Но тут обратная, чем больше число, тем меньше частота, по-этому затрудняюсь.

По-видимому, Вы хотите сказать, что таймер1 считает импульсы с Fclk/8; при достижении таймером значения, заданного в COMPA, таймер обнуляется, программа делает еще что-то, и Вам необходимо индицировать частоту, с которой это что-то выполняется?
Тогда Вам нужно индицировать результат несложной операции Fclk/8/COMPA. Для этого достаточно дружить с арифметикой, как частным разделом математикиsmile.gif.
Коляй
Спасибо. Ништяк всё получилось. С математикой напряг и с арифметикой тож.
Alex_Pol
Микроконтроллеры (МК) > AVR
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.