реклама на сайте
подробности

 
 
> И снова частотомер на Atmega8., нужен алгоритм
Peeoner
сообщение Jul 10 2008, 23:45
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 2-07-08
Пользователь №: 38 711



Добрый день всем!
На этом форуме я вобщем новичек.
Вот уже меня достал этот вопрос,бо я лажу-и везде готовые схемы,без самой идеи как оно работает!
Не надо мне готовые варианты нада сама идея!!!
Вобщем в чем суть то вопроса
Сваял так сказать частотомер на Atmega8+LMXxxxx пределитель,с выводом на МЭЛТ MT10T7-7.
Тут запортачка с самим принципом измерения!
Пишу на ассемблере,писать на С для таких контролеров,как по мне это полное извращение!
И так.
Использую 2 таймера-8битный Т0,и 16 битный Т1.
Измерительная частота поступает сразу на вход Т1(PD5).
После инициализацие портов,дисплея и LMX,инициализирую таймеры--
на Т0 пускаю сигнал с кварца,поделенный на 8, вход T1 подкл к источнику сигнала.
А забыл-в Т0 записую константу,что бы прерывание от него наступило после 100 импульсов поступивших на него.
Потом запускаю бесконечный цикл.
Наступает прирывани через 100имульсов тактируемые частотой 1МГЦ(8МГЦ/8).
Останавлваем Т1,изымаем даные с регистров,преобразуем 16бит в 5 десятичных знаков,выводим на экран. запускаем таймеры-счетчики,возвращаемся в бесконечный цикл.

Так вот в чем глюк! Когда тестил прогу,тестил ее на частах до 2х Мгц,т е 8 бит 16битного счетчика,потом прикурил LMX,тут чюдеса когда значение в Т1 больше 255,почемуто не корректно просходит преобразование двоичного числа в десятичное...один алгорит нарыл преобразования,а все остальное бред какойто...возникли сомнения -правильно ли у меня преобразование 2х 8битных регистров с T1 в десятичный код?
бо в инете токо один пример нарыл,остальное для школы 11 класса!

Вопрос. Будет ли работать моя идея??? И какие тут подводные камни,и точность.Вобще работает,но я не уверен чт идея верна
И как реализуют алгоритм на одном 8 битном таймере? ведь прерывание,изьятие из регистра и запись,это погрешность ,и приличная!

Почитав это http://electronix.ru/forum/index.php?showt...29796&st=75 ,я пришол в УЖАС!!! 07.gif
Мне хватит и 5 разрядов.
Сразу скажу частоту мерять до 3 ГГц,точность +-0.5МГЦ не критично!
Схема собрана,работает,но вот с алгоритмом измерения походу не то.

Посмотрел тут схемы,почемуто народ использует 8 битный таймер-счетчик...да и прошивы все hex,пришлось дизасемблить и смотреть....ну просто бесит..что нигде ни кто подробно не описал по человечиски....

Жду коментарием. За любой ответ буду благодарен.

Сообщение отредактировал Peeoner - Jul 10 2008, 23:59
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Peeoner
сообщение Jul 11 2008, 15:09
Сообщение #2





Группа: Новичок
Сообщений: 10
Регистрация: 2-07-08
Пользователь №: 38 711



Цитата
Посмотрел вашу ссылку, там моя переписка с Яrik'ом (кстати, он довёл-таки точность измерения частоты 1 МГц программой на си до 1 Гц), никакого ужаса не заметил, зато почитав ваши сообщения, понял, что вы учились в олбанской школе и были там хорошистом или даже отличником. Потом посмотрел вашу программу и тут пришёл в тихий ужас: нет ни одного завершённого фрагмента, просто какие-то куски кода.

По делу. Алгоритм измерения частоты методом ворот достаточно примитивен. Берёте некий счётчик, открываете его на некоторый период времени - счётчик начинает считать приходящие импульсы, закрываете - перестаёт считать. Если окно было открыто на 1 секунду, то искомая частота в герцах равна количеству импульсов в счётчике. Если окно открыто на 0.1с, то частота в десятках герц и т.д. Если окно некратно таких числам, то придётся каждый раз пересчитывать, поэтому все стараются выставить кратное окно. У вас, кстати, длительность окна не кратна, надо пересчитывать. Да и длительность какая-то смехотворная - порядка 40 мс, подойдёт только для оценки величины частоты. Видите ли, частотомер это точный измерительный прибор, и разработчики всегда стараются выжать максимум из разрабатываемого устройства, так они устроены. А уж что выводить на дисплей, 5-6-7-8-9-10 разрядов, это отдельная песня.

Ну в албанской школе не учюся,давно уже отучился,грамматика на форуме ,думаю, это не столь критично.Да и коменты в тексте программы чисто для себя,что бы не пришлось думать "а што же я тут делал" кода прога поваляеться пол года на компе,и придеться что то править.
Код в програме завершен,я просто привел кусок который относиться к циклу измерения,просто незнаю нужен ли весь код,вроде и так понятно
А на диспелй выводить цифры,ни какой песни нету,все достаточно легко,как по мне проще чем число преобразовать)))
Я прекрасно понимаю что частотомер точный прибор,но мне не нужно сверх точности.
Вот скажем на частоте в 3 000 МГЦ,поделеную на 1280 какую вы точность получите???? Используя обычный китайский КВАРЦ на 8мгц...
Я все же подумаю над идеей =GM= ...
Устройство для себя разрабатывалось.
>Этот алгоритм используют сотни людей, и У ВСЕХ он работает нормально. Тем более, что он очень простой. Просто применять его нужно правильн
Ну может конешно и я ошибся,поверю вам наслово. А вы его сами применяли хоть раз???
А по поводу С--напишите 100 строчек кода,откомпильте и посмотрите сколько hex файл у вас бедет весить,а потом напишите на ассемблере и сравните! А всякая оптимизация и прочее не дают особого эффекта

Сообщение отредактировал Peeoner - Jul 11 2008, 15:16
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 11 2008, 16:15
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Peeoner @ Jul 11 2008, 14:09) *
А на диспелй выводить цифры, никакой песни нету, все достаточно легко, как по мне проще чем число преобразовать)))

Ну-у-у, я имел в виде верные значащие цифры, а не просто цифры.

Цитата(Peeoner @ Jul 11 2008, 14:09) *
Я прекрасно понимаю что частотомер точный прибор, но мне не нужно сверхточности. Вот скажем на частоте в 3 000 МГw, поделеную на 1280 какую вы точность получите???? Используя обычный китайский КВАРЦ на 8мгц...

На ATtiny24 (20 МГц клок) я бы сказал, что можно получить порядка +-2 Гц, с обработкой можно получить точными все 10 цифр частоты. Например, Fx=2 999 999 998 Гц точно, не слабо, э? Причём, достичь такого на копеечном приборе. Интересно, за сколько такой прибор можно купить? Конечно, кое-над-чем придётся потрудиться, но это не смертельно. Да, и делил бы на 300, а не на 1280, и точнее, и всяко дешевле.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jul 11 2008, 17:29
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(=GM= @ Jul 11 2008, 16:15) *
На ATtiny24 (20 МГц клок) я бы сказал, что можно получить порядка +-2 Гц, с обработкой можно получить точными все 10 цифр частоты. Например, Fx=2 999 999 998 Гц точно, не слабо, э? Причём, достичь такого на копеечном приборе. Интересно, за сколько такой прибор можно купить?

Точных ? Десять ? На копеечном приборе ?
Мне кажется, только термостабилизация будет стоить на пару порядков дороже, чем этот "копеечный прибор" (
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jul 11 2008, 19:09
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Огурцов @ Jul 11 2008, 21:29) *
Точных ? Десять ? На копеечном приборе ?
Мне кажется, только термостабилизация будет стоить на пару порядков дороже, чем этот "копеечный прибор" (

термостабилизация чего? кварца контроллера? Вы о чём? Вы же не генерите образцовый сигнал а кто Вам сказал что сам измеряемый сигнал будет очёнь стабильным? для копеечного прибора термостабилизация не применяется, а указывается температурный диапазон прибора и indоor use only


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
gte
сообщение Jul 12 2008, 07:01
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(sKWO @ Jul 11 2008, 23:09) *
термостабилизация чего? кварца контроллера? Вы о чём? Вы же не генерите образцовый сигнал а кто Вам

И сколько значащих цифр при этом будут реальными?
Go to the top of the page
 
+Quote Post
sKWO
сообщение Jul 12 2008, 16:59
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(gte @ Jul 12 2008, 11:01) *
И сколько значащих цифр при этом будут реальными?

Полагаю не менее шести.
Проверял стабильность кварца контроллера используя режим CTC таймера. Исспользовал для измерения частоты не китайский частотомер, не помню как называется , год назад было, так вот частота генерируемая так по памяти из кварца фирмы Siward 7.3728 MHz, LP-3.5S, 30ppm и равнялась 230400 Гц - ошибка в один герц накапливалась в течении 15-ти ... 20-ти секунд.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Peeoner   И снова частотомер на Atmega8.   Jul 10 2008, 23:45
- - defunct   Цитата(Peeoner @ Jul 11 2008, 02:45) Пишу...   Jul 11 2008, 00:10
- - Peeoner   Вот участок кода самого цикла измерения,сильно не ...   Jul 11 2008, 00:23
- - Peeoner   Ну вот все проверил,дествительно глюк именно в пре...   Jul 11 2008, 03:42
|- - zhevak   Цитата(Peeoner @ Jul 11 2008, 09:42) Тепе...   Jul 11 2008, 05:45
|- - Nanobyte   Цитата(Peeoner @ Jul 11 2008, 07:42) ...В...   Jul 11 2008, 10:21
|- - Qwertty   Цитата(Peeoner @ Jul 11 2008, 07:42) глюк...   Jul 11 2008, 12:59
- - =GM=   Цитата(Peeoner @ Jul 10 2008, 22:45) Почи...   Jul 11 2008, 12:33
- - akl   Цитата(Peeoner @ Jul 11 2008, 04:45) ...в...   Jul 11 2008, 12:58
|- - Sneg_87   Цитата(akl @ Jul 11 2008, 18:58) Как Вам ...   Oct 13 2009, 04:12
|- - zltigo   Цитата(Peeoner @ Jul 11 2008, 17:09) Ну в...   Jul 11 2008, 15:22
||- - zhevak   Цитата(zltigo @ Jul 11 2008, 21:22) Moder...   Jul 11 2008, 15:37
|- - Peeoner   Цитата(=GM= @ Jul 11 2008, 19:15) Ну-у-у,...   Jul 11 2008, 16:22
|- - Огурцов   Цитата(sKWO @ Jul 11 2008, 19:09) для коп...   Jul 11 2008, 19:41
|- - Огурцов   Цитата(sKWO @ Jul 12 2008, 16:59) Полагаю...   Jul 12 2008, 20:16
|- - foxit   Цитата(Огурцов @ Jul 12 2008, 23:16) Ну В...   Jul 13 2008, 09:16
|- - sKWO   Цитата(foxit @ Jul 13 2008, 12:16) Кварц ...   Jul 13 2008, 13:08
- - Peeoner   Правила читал.Вроде не че такого не сказал,забанит...   Jul 11 2008, 15:34
|- - zltigo   Цитата(Peeoner @ Jul 11 2008, 17:34) Прав...   Jul 11 2008, 15:41
- - Peeoner   Спасибо,понял. Народ почемуто тут везде исходники ...   Jul 11 2008, 15:45
|- - zltigo   Цитата(Peeoner @ Jul 11 2008, 17:45) Наро...   Jul 11 2008, 15:51
- - Peeoner   Ну вобщем решил я реализовать метод =GM=,как бы вр...   Jul 12 2008, 09:30
- - Tiny   Такой вопрос. CodeVision, пример из пакета \c...   Jul 13 2008, 07:32
|- - foxit   Цитата(Tiny @ Jul 13 2008, 10:32) Есть ли...   Jul 13 2008, 09:28
|- - Nanobyte   Цитата(foxit @ Jul 13 2008, 13:28) ...смо...   Jul 14 2008, 14:47
- - Tiny   Извиняюсь, почему-то я разместил свое сообщение не...   Jul 13 2008, 09:20
- - akl   Здравствуйте. Имелась в виду LMX2326 в качестве пр...   Oct 14 2009, 03:00


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016