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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Измерение частоты ATmega168
mse
сообщение Apr 23 2007, 14:30
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(defunct @ Apr 23 2007, 15:04) *
Тут я с вами не соглашусь.
Т.к. точность там определяется точностью ворот умноженной на точность захвата, тобиш для 10ms будет:
±100 * (2Fизм/Fosc)
...
Я не путаю, а просто чуть-чуть поигрался с этим методом. Не все так гладко на практике как в теории.

Не знаю, с чем вы игрались, но метОде этой сто лет в обед уже. А негладкость там одна - нужна проццедура деления. И помножения тоже, в общем случае. Накладные расходы на счОччики, практицки те-же самые. Одним делаем ворота, другим считаем. Классический режим Ф1/Ф2 у классицких частотомеров. А уж в нём-то меряно-перемеряно немеряно скока и чего...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 23 2007, 14:33
Сообщение #17


Ambidexter
*****

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



Цитата(defunct @ Apr 23 2007, 10:04) *
Тут я с вами не соглашусь.
Т.к. точность там определяется точностью ворот умноженной на точность захвата, тобиш для 10ms будет:
±100 * (2Fизм/Fosc)
Я не путаю, а просто чуть-чуть поигрался с этим методом. Не все так гладко на практике как в теории.

Это что за точность, относительная? Покажите, откуда она взялась.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Guest_=AVR=_*
сообщение Apr 23 2007, 15:41
Сообщение #18





Guests






Цитата(=GM= @ Apr 23 2007, 01:51) *
Метод захвата на атмеге168 применим до Fclk/5. На атмеге128 - до Fclk/2, так же как и для метода ворот. Для максимальной частоты Fclk/2 точность метода захвата в 2 раза лучше точности метода ворот.

Capture годится до тех пор, пока время примитивной обработки события Capture (как минимум вход в ISR, сохранение отсчета в буфере, и возврат из ISR) не превысит периода измеряемой частоты
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 23 2007, 16:19
Сообщение #19


Ambidexter
*****

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



Цитата(=AVR= @ Apr 23 2007, 11:41) *
Capture годится до тех пор, пока время примитивной обработки события Capture (как минимум вход в ISR, сохранение отсчета в буфере, и возврат из ISR) не превысит периода измеряемой частоты

Ну уж вы скажете! Надо-то всего два прерывания на одно измерение, причем между ними зазор по времени ОДНА секунда.

Да и вообще, без прерываний можно обойтись.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Guest_=AVR=_*
сообщение Apr 23 2007, 16:56
Сообщение #20





Guests






Цитата
Надо-то всего два прерывания на одно измерение
Вот про любое из них я и говорю. Для Мег с однотактовым доступом к ICR1 (М128) минимальный период (в тактах XTAL) должен быть больше, чем InterruptLatency+1, с двухтактовым (М168) - чем InterruptLatency+2. А для поллинга без прерываний это будет для обеих Мег по 4 такта - в М128 адрес TIFRа, в котором живет флаг Capture, не попадает в разрешенный диапазон адресов команды sbic, поэтому придется делать in+sbrs, что уравняет выигрыш в такт от in вместо lds. Так как максимальная измеряемая частота будет определяться, увы, именно этим временем, то лимит Fin будет одинаков и в случае единственного прерывания за цикл измерения
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 23 2007, 18:11
Сообщение #21


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Apr 23 2007, 13:33) *
Это что за точность, относительная? Покажите, откуда она взялась.

погрешность одного захвата в секундах у нас = +-1/Fosc
Захватов по вашей методе 2 - вначала и в конце, отсюда погрешность захватов - +-2/Fosc.

P1 = 2/Fosc секунд

для интервала измерения T погрешность составит:

P2 = P / T

теперь считаем погрешность в герцах для частоты Fизм

P3 = Fизм * P2

Теперь разворачиваем P2:

P3 = Fизм * (2/Fosc) / T = 1/T * 2Fизм/Fosc

для T = 10ms:
100 * 2 Fизм/Fosc
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 23 2007, 19:32
Сообщение #22


Ambidexter
*****

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



Цитата(defunct @ Apr 23 2007, 14:11) *
погрешность одного захвата в секундах у нас = +-1/Fosc
Захватов по вашей методе 2 - в начале и в конце, отсюда погрешность захватов - +-2/Fosc.

Насчет захватов правильно, а насчёт погрешности неправильно. Объясню, почему так. Предположим вам необходимо измерить некий интервал. Погрешность в начале может только уменьшить ваш результат, поскольку вы можете начать отсчёт только после того, как событие началось, не раньше. Т.о. погрешность лежит на полуоткрытом отрезке (-1,0]. Погрешность в конце может только увеличить ваш результат, поскольку вы можете завершить отсчёт только после того, как событие закончилось, не раньше, т.о. погрешность лежит на полуоткрытом отрезке [0,+1). Поскольку отрезки не перекрываются, общая погрешность определения длины интервала будет просто суммой двух отрезков и будет лежать в диапазоне (-1,+1) или, говоря простым языком, будет ±1 такт. А не ±2, как вы считаете.
Цитата(defunct @ Apr 23 2007, 14:11) *
P1 = 2/Fosc секунд
для интервала измерения T погрешность составит: P2 = P / T

Да с чего вы взяли? Я же не определяю каждый период отдельно и потом суммой получаю полный интервал, стало быть должен и погрешности каждого интервала суммировать. У меня всего две погрешности - начала и конца, никаких промежуточных погрешностей нет. Поэтому общая погрешность будет ±1 такт.
Цитата(defunct @ Apr 23 2007, 14:11) *
теперь считаем погрешность в герцах для частоты Fизм
P3 = Fизм * P2
Теперь разворачиваем P2: P3 = Fизм * (2/Fosc) / T = 1/T * 2Fизм/Fosc
для T = 10ms: 100 * 2 Fизм/Fosc

Тоже неверно, поскольку неверны исходные посылки.

Кстати, у вас в формулах с размерностями не всё в порядке.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 23 2007, 22:22
Сообщение #23


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Apr 23 2007, 18:32) *
Да с чего вы взяли? Я же не определяю каждый период отдельно и потом суммой получаю полный интервал,

Мы уже в курсе что захватывается начало импульса, затем считаются импульсы, затем захватывается опять начало импульса, т.о. за время T мы получаем два числа М и N
1. M число периодов искомой частоты
2. N = T * Fosc - количество тактов опорной частоты.

На основе этого мы и считаем искомую частоту. Для этого способо погрешность будет такой как я описал постом выше.

Если вы опять говорите о каком-то другом способе, то сперва изложите его так чтобы было понятно всем, а не только вам.

Цитата
Да с чего вы взяли? Я же не определяю каждый период отдельно и потом суммой получаю полный интервал,

T - это полный интервал.
Вы его назвали - 10ms.

Цитата
Кстати, у вас в формулах с размерностями не всё в порядке.

Там все ок. Hz/Hz / s = Hz
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 23 2007, 22:54
Сообщение #24


Ambidexter
*****

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



Цитата(defunct @ Apr 23 2007, 19:22) *
Для этого способа погрешность будет такой как я описал постом выше.

Слона надо есть по частям, а танцевать надо от печки, поэтому давайте по порядку. Вы опустили моё описание как считать погрешность определения интервала. Значит ли это, что вы согласны или вы по-прежнему считаете, что, цитирую, "погрешность одного захвата в секундах = +-1/Fosc. Захватов по вашей методе 2 - вначала и в конце, отсюда погрешность захватов - +-2/Fosc". Я утверждаю, что погрешность равна ±1 такт, вы же упираетесь на ±2 такта.
Цитата(defunct @ Apr 23 2007, 19:22) *
Если вы опять говорите о каком-то другом способе, то сперва изложите его так чтобы было понятно всем, а не только вам. T - это полный интервал. Вы его назвали - 10ms.

Способ тот же самый и интервал я назвал, ну и что из этого? Мы же говорим о расчёте погрешности, а вы виляете, как маркитанская лодка. Сначала говорите, вот покажете как, я свои слова назад возьму, а потом говорите, к методу претензий нет, но очень большие сложности в реализации, ну о-очень большие...Ладно, отвлёкся.
Цитата(defunct @ Apr 23 2007, 19:22) *
Там все ок. Hz/Hz / s = Hz

Ну если ОК, то подскажите, в каких единицах выражается Р2, если Р1 в герцах, а Т в секундах? Заодно просветите, что там у вас за переменная Р, чтобы было понятно всем, а не только вам.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 24 2007, 00:23
Сообщение #25


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Apr 23 2007, 21:54) *
Я утверждаю, что погрешность равна ±1 такт, вы же упираетесь на ±2 такта.

1 или 2 такта это не важно, важно что не будет там +-0.02Гц за 10ms.

Цитата
Ну если ОК, то подскажите, в каких единицах выражается Р2, если Р1 в герцах, а Т в секундах? Заодно просветите, что там у вас за переменная Р, чтобы было понятно всем, а не только вам.

P1 - погрешность захватов (в секундах)
P2 - весовой коэфициент погрешности для интервала T (если домножить на 100% получите в процентах)
P3 - погрешность измерения частоты Fизм на интервале T - в герцах.

P - опечатка, там должно было быть P1 (P2 = P1 / T).
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 24 2007, 01:29
Сообщение #26


Ambidexter
*****

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



Цитата(defunct @ Apr 23 2007, 21:23) *
1 или 2 такта это не важно

Как это не важно? Это очень важно, ошибка уменьшается в два раза. Что бы вы сказали, если б вам бухгалтер начислил зарплату в два раза меньше, мотивируя тем, что это, мол, ошибка округления такая набежала(:-)?
Цитата(defunct @ Apr 23 2007, 21:23) *
важно что не будет там +-0.02Гц за 10ms.

Конечно, не будет, я этого и не говорил. Почитайте мой пост #14 в этой ветке. Я там говорил, что методом захвата можно получить ту же самую точность ±1 Гц, что и методом ворот, но в 100 раз быстрее, а именно за 10 мс. Повнимательнее надо быть самому, щательнее так сказать, а не других корить.

Когда слова-то свои забирать обратно будете? Вроде с методом согласились, с тем что прерываниями программа не захлебнётся тоже...Гордость не позволяет или высокое звание профессионала на этом форуме или ещё что(:-)?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 24 2007, 14:18
Сообщение #27


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
Как это не важно? Это очень важно, ошибка уменьшается в два раза.

Уменьшайте в два раза. Во скока хотите во стока и уменьшайте. оно у вас и работает ровно на пол-зарплаты.

Цитата(=GM= @ Apr 24 2007, 00:29) *
Когда слова-то свои забирать обратно будете? Вроде с методом согласились, с тем что прерываниями программа не захлебнётся тоже...

Когда приведете программу.
В той ветке, был треп, и мне нечего забирать, т.к задачу той ветки вы своим методом не решили, метод объясняли целую неделю.
Go to the top of the page
 
+Quote Post
mse
сообщение Apr 24 2007, 14:49
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(defunct @ Apr 24 2007, 15:18) *
Уменьшайте в два раза. Во скока хотите во стока и уменьшайте. оно у вас и работает ровно на пол-зарплаты.
Когда приведете программу.
В той ветке, был треп, и мне нечего забирать, т.к задачу той ветки вы своим методом не решили, метод объясняли целую неделю.

Остапа понесло... ;О) Он-то при чём, если вы целую неделю не могли понять? Откройте ТО на любой толковый частотомер и изучите матчасть...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 24 2007, 15:23
Сообщение #29


Ambidexter
*****

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



Да, интересное кино. Я смотрю, вы отвечаете только на выборочные моменты, а когда вам нечего ответить, вопросы просто пропускаете. Вот, например, вы написали: "важно что не будет там +-0.02Гц за 10ms"

Вот я вам ответил: "Конечно, не будет, я этого и не говорил. Почитайте мой пост #14 в этой ветке. Я там говорил, что методом захвата можно получить ту же самую точность ±1 Гц, что и методом ворот, но в 100 раз быстрее, а именно за 10 мс. Повнимательнее надо быть самому, щательнее так сказать, а не других корить"

Ну откуда вы взяли этот перл, что у меня точность будет ±0.02Гц за 10ms? Из пальца высосали? Когда вам на это указали, вы просто не стали отвечать, поскольку ответить по существу нечего.

Цитата(defunct @ Apr 24 2007, 10:18) *
Уменьшайте в два раза. Во скока хотите во стока и уменьшайте. оно у вас и работает ровно на пол-зарплаты.

А вот это уже трёп. Вам указали на вашу ошибку в определении погрешности, ну так признайте и поехали дальше, а вы вместо того, чтобы признать, начинаете упираться, вилять и уходить в сторону. Что значит, "во сколько хотите, во столько и уменьшайте", вы что, на базаре? Это математика, тут всё считается на раз. Советую вам почитать статью Гегеля, Георга Вильгельма Фридриха, "Кто мыслит абстрактно", вам будет полезно.

Цитата(defunct @ Apr 24 2007, 10:18) *
Когда приведете программу. В той ветке, был треп, и мне нечего забирать, т.к задачу той ветки вы своим методом не решили, метод объясняли целую неделю.

Да хоть две! Я же не виноват, что некоторые до сих пор не въехали, но щёки надувают. А в той ветке вы конкретно пытались меня ошельмовать, и мне это не нравится, и я всегда буду с этим бороться, зарубите себе на носу.

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

Ну и как следствие, что может доказать моя программа, пусть самая распрекрасная, если вы не понимаете до конца алгоритма измерения частоты методом захвата и путаетесь в определении погрешности?

Не надо мне здесь отвечать. И так всё ясно.

Прошу у всех прощения за флейм.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 24 2007, 15:40
Сообщение #30


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Ок, приношу всем кого задел свои извинения.
Я здесь чертовски не прав.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:08
Рейтинг@Mail.ru


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