|
|
  |
три частоты на АТмегу 128 с использованием таймеров, оределить изменения каждой частоты |
|
|
|
Apr 10 2007, 03:41
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Так, хорошо хоть работу схемы захвата я понимаю верно. Цитата(=GM=) Входная частота подается на ножку ICPn, которая является частью схемы захвата (input capture unit). Схема захвата работает следующим образом. По фронту импульса входной частоты содержимое таймераn переписывается в специальный регистр (ICRn). Т.е. получается, что как обычно таймер тактируется опорной частотой, которая является асинхроной по отношению к входной измеряемой. Поэтому захват фронта измеряемой частоты произойдет с точностью до 1 такта опорной. Цитата(=GM=) Количество импульсов входной частоты можно считать программно, но можно и другим таймером0 (счетчик М) ОК, посчитали мы импульсы и зафиксировали схемой захвата фронт последнего импульса с точностью опять же +- 1 период от опорной частоты. Кстати, а переполнения таймера вы учитываете? При тактовой 16МГц за 1 сек измерения у 16-битного таймера произойдет 244 переполнения. Ладно. Дальше. Пускай измеряемая частота была 169999Гц. Тогда за время счета 170000 импульсов мы получаем схемой захвата число 16000094. Вычисляем по вашей формуле Fx=16000000*170000/16000094(+-2)=169999,001Гц(+-0,02Гц). Хм.  И вправду получается неплохое разрешение!
|
|
|
|
|
Apr 10 2007, 09:41
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
хелп! запутался в конец! Ув.=GM=, поясните пожалуйста. Цитата По фронту импульса входной частоты содержимое таймераn переписывается в специальный регистр (ICRn). а что за содержимое в таймере?(что собственно мы там насчитали?) Неивестное время до начала вх. импульса? Цитата Выждали примерно (!) секунду, включили прерывания Capture Unit опять, сработало, в прерывании записали время т2 и выключили прерывания Capture Unit Здесь я так понял время прошедшее до первого фронта после интервала "примерно одна секунда". И собственно непонятно причем здесь это?: Цитата Зная количество периодов входной частоты, (т2-т1) Да вот еще до кучи цитата: Цитата Евстифеев(Atmel_AVRTiny_Mega) ..стр 284. "следует понимать, что между изменением состояния вххода блока захвата копированием счетного регистра в регистр захвата проходит некоторое время. Эту задержку вносит синхронизатор и детектор. Величина задержки состовляет 2.5 ..3.5 машинных цикла... Тут как быть с 2.5...3.5?
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Apr 10 2007, 10:37
|

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

|
Цитата(rezident @ Apr 10 2007, 00:41)  ОК, посчитали мы импульсы и зафиксировали схемой захвата фронт последнего импульса с точностью опять же +- 1 период от опорной частоты. Немного подправлю. Любой фронт вы фиксируете с точностью в диапазоне (0,1) такт, значит оба фронта фиксируются с точностью ±1 такт. Это важно осознать, а то вы там ниже уже пишете ±2, а это неправильно. Цитата(rezident @ Apr 10 2007, 00:41)  Кстати, а переполнения таймера вы учитываете? При тактовой 16МГц за 1 сек измерения у 16-битного таймера произойдет 244 переполнения. А як-жеж(:-)! Специально написал, что все переменные 32-битные. Цитата(rezident @ Apr 10 2007, 00:41)  Ладно. Дальше. Пускай измеряемая частота была 169999Гц. Тогда за время счета 170000 импульсов мы получаем схемой захвата число 16000094. Вычисляем по вашей формуле Fx=16000000*170000/16000094(+-2)=169999,001Гц(+-0,02Гц). Хм.  И вправду получается неплохое разрешение!  Как-то не так вы вычисляете. Для частоты 169999 Гц вы и получите за 1 секунду М=169999 импульсов, а импульсов опорной за секунду будет N=16000000. Измеренная частота Fx=169999*16000000/(16000000±1)=169999±0.01. Ну и вот здесь ошибочка, надо писать ±1, а не ±2, почему, я объяснил выше. Цитата(add @ Apr 10 2007, 06:41)  хелп! запутался в конец! Ув.=GM=, поясните пожалуйста. а что за содержимое в таймере?(что собственно мы там насчитали?) Неивестное время до начала вх. импульса? В таймере идёт текущее время, которое задается опорным генератором, таймер считает импульсы этого генератора. Нам неважно абсолютное значение начала, нам важна разница между концом и началом. N=Ткон-Тнач ("временные ворота", если хотите). Цитата(add @ Apr 10 2007, 06:41)  Здесь я так понял время прошедшее до первого фронта после интервала "примерно одна секунда". И собственно непонятно причем здесь это?: "Зная количество периодов входной частоты, (т2-т1)" Ну так это и есть значение периода измерения. Цитата(add @ Apr 10 2007, 06:41)  Да вот еще до кучи цитата: Евстифеев(Atmel_AVRTiny_Mega) ..стр 284. "следует понимать, что между изменением состояния вххода блока захвата копированием счетного регистра в регистр захвата проходит некоторое время. Эту задержку вносит синхронизатор и детектор. Величина задержки состовляет 2.5 ..3.5 машинных цикла... Тут как быть с 2.5...3.5? Ну, задержка одна и та же как для начала, так и для конца. Не надо её учитывать. Тем более, как я сказал, нам без разницы каково абсолютное время, важна разница между последним фронтом и первым.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 10 2007, 11:48
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Вгрубе так, запустили прерывание Capture Unit, оно сработало, в прерывании записали захваченное время т1 и выключили прерывания Capture Unit. Выждали примерно (!) секунду, включили прерывания Capture Unit опять, сработало, в прерывании записали время т2 и выключили прерывания Capture Unit. Зная количество периодов входной частоты, (т2-т1) и тактовую частоту, вычисляем частоту входного сигнала, точность измерения примерно ±0,02 Гц. Сравните с вашими ±1 Гц. Другим способом на данном железе вы такой точности не добьётесь. Как я понял измерения проходят так:
Как тут можно определить частоту?
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Apr 10 2007, 12:42
|

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

|
Цитата(add @ Apr 10 2007, 07:48)  Как я понял измерения проходят так:
Как тут можно определить частоту? Картинки хорошие, но неполные. Внизу под меандром надо нарисовать много-много импульсов опорной частоты, это будет наше время, заполнение, как угодно назовите. Вот вы написали "Оно сработало" в конце периода Т1 (ваши обозначения на рис.1). Что это означает? Это означает, что содержимое таймера1 от "мелкого" опорного меандра (который вы не нарисовали) переписалось в регистр ICR1, его надо запомнить, а прерывание запретить (в принципе, можно не запрещать, просто не обращать внимания, если время и вычислительная обстановка позволяет, важно, что нужно только первое, которое даёт время начала вашего окна). Отмечу, что таймер1 продолжает работать, отсчитывает длительность окна. В начале времени Т2 на вашем рисунке надо разрешить прерывание опять, всё так, дождаться когда оно сработает (конец периода Т2 на вашем рисунке), и запомнить время, сохранённое в ICR1. Затем нужно вычислить разность этих времен. Что нам даст эта разность? Эта разность N нам даст время (в тиках таймера1) между первым фронтом входной частоты и последним фронтом. Причём это время будет не приблизительным, а ТОЧНЫМ, с точностью ±1 такт. В то же самое время, таймер0 подсчитает количество импульсов входной частоты М. Теперь вы имеете на руках М, N и Fo и по формуле можете посчитать Fx. Скажу ещё раз, для ясности. Сигнал измеряемой частоты надо подать на вход ICP1 и вход timer0/counter0, который работает как счётчик, в то же время timer1 работает как таймер, считает импульсы опорной частоты.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 10 2007, 12:58
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата Скажу ещё раз, для ясности. Сигнал измеряемой частоты надо подать на вход ICP1 и вход timer0/counter0, который работает как счётчик, в то же время timer1 работает как таймер, считает импульсы опорной частоты таймер0 подсчитает количество импульсов входной частоты М. Этого не хватало для понимания :-) т.е. всеж таки мы не совсем "отдыхаем", а переодически Fвх. /255 обрабатываем переполнение таймера timer0/counter0 считая кол-во импульсов. (для 170кГц это 666 прерываний на обработку которого пусть тактов20, соответственно это 13333 тактов, - меньше 0,1% загрузки контр.при 17МГц за сек. ) Спасибо за разъяснения.
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Apr 10 2007, 13:33
|

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

|
Цитата(add @ Apr 10 2007, 08:58)  Этого не хватало для понимания :-) т.е. всеж таки мы не совсем "отдыхаем", а периодически Fвх. /256 обрабатываем переполнение таймера timer0/counter0 считая кол-во импульсов. (для 170кГц это 664 прерываний на обработку которого пусть тактов20, соответственно это 13280 тактов, - меньше 0,1% загрузки контр. при 17 МГц за сек.) Спасибо за разъяснения. На здоровье. Да, конечно, не совсем "отдыхаем"(:-). Но это малая плата за результат. Кстати, в методе "ворот" тоже надо учитывать переполнения, куда от них денешься. А откуда у вас взялось 17 МГц? Лучше не выходить за допустимые рамки по тактовой частоте. Добавлю, что ещё будут прерывания по переполнению таймера1, который считает опору. Ну здесь загрузка вообще слёзы - 16МГц/65536=244 Гц или один раз за 4 мс. На загрузку проца практически не влияет. Отвлекусь малёк. Я вот вижу, что вы заинтересовались, позадавали вопросы и разобрались, как оно всё работает. Что ж некоторые уважаемые, не буду показывать пальцем, никак не разберутся и не заберут свои слова назад о том, что это "пустой трёп"? А потом опять из-за угла будут говорить о "0 в сиянии". Как-то несправедливо получается, человека оговорить можно и легко, а признать свою неправоту нельзя ни под каким видом. Конечно, надо иметь определенное мужество, чтобы признать перед сообществом свою неправоту.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 10 2007, 13:55
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(=GM=) Как-то не так вы вычисляете. Для частоты 169999 Гц вы и получите за 1 секунду М=169999 импульсов, а импульсов опорной за секунду будет N=16000000. Измеренная частота Fx=169999*16000000/(16000000±1)=169999±0.01. Ну и вот здесь ошибочка, надо писать ±1, а не ±2, почему, я объяснил выше. Еще раз. Откуда взялась цифра 169999? Изначально мы не знаем входную частоту. Допустим по 1 периоду определили ее период с дискретностью +-1 такт опорной частоты (число 94 или 95 в ее отсчетах). Т.е. 16000000Гц/94=170212,766Гц или 16000000Гц/95=168421,051Гц. Время измерения у нас 1 сек, следовательно мы должны подсчитать 170213 или 168421 импульсов входной частоты, чтобы примерно получить 1 сек "временнЫх ворот". Далее, взяв меньшую величину (чтобы гарантированно уложиться в 1 секунду), посчитаем 168421 импульс частоты 169999Гц. Мы получим длительность "временнЫх ворот" 0,99072 сек. За это время первый таймер отсчитает 15851481 такт опорной частоты (разница между двумя захватами старта и стопа). Итого расчетная частота получится: Fx=16000000*168421/15851481(+-2)=169999,005Гц+-0,02Гц Я не знаю синхронный или асинхронный захват в AVR, поэтому насчет +-2 утверждать не буду. В общем (худшем) случае будет +-2 такта. Насчет описанного вами метода я в общем-то все понял. Нет принципиальной разницы в том, чтобы формировать "временнЫе ворота" опорной частотой, подсчитывая импульсы измеряемой частоты или наоборот, формировать "временнЫе ворота" из импульсов измеряемой частоты, подсчитывая количество импульсов опорной частоты, "влезающие" в эти "временнЫе ворота". Точнее разница в том, что "временнЫе ворота" лучше формировать из более низкой частоты. Спасибо за разъяснения! P.S. только для удобства лучше все же иметь в периферии 32-х разрядный таймер, а не 8-ми разрядный
|
|
|
|
|
Apr 10 2007, 14:51
|

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

|
Цитата(rezident @ Apr 10 2007, 09:55)  Еще раз. Откуда взялась цифра 169999? Изначально мы не знаем входную частоту. Допустим по 1 периоду определили ее период с дискретностью +-1 такт опорной частоты (число 94 или 95 в ее отсчетах). Т.е. 16000000Гц/94=170212,766Гц или 16000000Гц/95=168421,051Гц. Время измерения у нас 1 сек, следовательно мы должны подсчитать 170213 или 168421 импульсов входной частоты, чтобы примерно получить 1 сек "временнЫх ворот". Не, что-то не срастается. Давайте ляжем по-другому(:-). Запустили таймер1 и прерывание по захвату. Пусть так получилось, что прерывание сработало как раз в то время, когда в таймере оказался 0 (вообще без разницы, что там будет, просто для удобства). Запомнили этот 0 в памяти или регистре, не важно. Сидим ждём, курим, "кирпич ёк"(:-). То есть ничего не делаем, таймер1 подсчитывает время окна, таймер 0 подсчитывает количество входных импульсов. "Ничего не делаем" означает скручиваем 32-битный счетчик, предположим он рассчитан на 800 мс. Затем разрешили прерывание по захвату, оно сработало, у нас в руках число - время последнего фронта входного импульса. Какое оно будет? Зависит от того, сколько импульсов входного сигнала насчиталось. Давайте прикинем. Если задержка была на 800 мс, то число М=170000*0.8=136000, а число N=16000000*0.8=12800000. Хорошо, значит Fx=16000000*136000/12800000=170000±0.013 Гц Если задержка была на 801 мс, то число М=170000*0.801=136170, а число N=16000000*0.801=12816000. Fx=16000000*136170/12816000=170000±0.013 Гц Если задержка была на 802 мс, то число М=170000*0.802=136340, а число N=16000000*0.802=12832000. Fx=16000000*136340/12832000=170000±0.013 Гц Ну и так далее. Как вы видите размер окна никак не влияет на результат. Но относительная ошибка, естественно, зависит от времени наблюдения. Для упрощения понимания я брал задержку примерно на 1 с. Подчеркну, окно всё время будет кратным периоду входной частоты, поскольку схема захвата срабатывает от передних фронтов именно входной частоты. Ну а поскольку частота опоры асинхронна по отношению к входной частоте, она будет "гулять" на ±1 такт. Цитата(rezident @ Apr 10 2007, 09:55)  Я не знаю синхронный или асинхронный захват в AVR, поэтому насчет +-2 утверждать не буду. В общем (худшем) случае будет +-2 такта. Захват синхронный, поскольку все входные сигналы тактируются внутренним клоком, т.е. все входные фронты приводятся к единой временной сетке, что есть, не скажу всегда необходимо, но грамотно с точки зрения построения архитектуры МК. Как бы то ни было, фронт нашего сигнала лежит между двумя фронтами тактовой частоты, следовательно максимальная ошибка +1 такт, или, если хотите, ±0.5 такта. Как кому нравится. Или вот так ещё можно сказать: фронт нашего сигнала лежит в диапазоне от N до N+1 такта, соответственно ошибка лежит в диапазоне от 0 до 1 такта. Цитата(rezident @ Apr 10 2007, 09:55)  P.S. только для удобства лучше все же иметь в периферии 32-х разрядный таймер, а не 8-ми разрядный  Так ведь нет его! С другой стороны, представьте себе некий 8-10-12-ногий чип, который меряет частоту с относительной точностью 10^(-10), что могут дать только какие-нибудь монстры с цезиевым или там водородным стандартом, да и то не все. Ну а опору надо брать от ДжиПиэС(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 10 2007, 16:11
|

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

|
Цитата(=GM= @ Apr 9 2007, 22:02)  Входная частота подается на ножку ICPn, которая является частью схемы захвата (input capture unit). Схема захвата работает следующим образом. По фронту импульса входной частоты содержимое таймераn переписывается в специальный регистр (ICRn). Можно и по спаду, это настраивается. То есть, если у вас в таймереn тикает время, то вы получите точное значение времени пришедшего фронта, скажем, это было начало измерения (значит, число Nнач). Запомнили его. И т.д. Количество импульсов входной частоты можно считать программно, но можно и другим таймером0 (счетчик М), я так и делаю. n - номер схемы захвата. Чудак человек... 1. Чем ваше решение в таком случае отличается от предложенного мной в comment'e #6? 2. Откуда здесь возьмется точность в +-0.02 Гц? 3. Зачем здесь Capture Unit если отмерять окно измерения можно гораздно проще, а опорная частота Fosc у нас и так есть. теперь ваша формула: Цитата 2) Формула вычисления частоты Fx = Fо*М/N (поскольку очевидно, что То*N=Тх*М за Тизм). проверим ее на частном случае, окно захвата - 1 секунда. В этом случае N = Fo, формула примет вид: Fx = M. Где же точность +- 0.02Гц? Ведь M - это целое число следовательно, с окном в 1 сек точность составит +- 1Гц. Пример программы вы не приводите вероятно потому, что вы осознаете, что у вас там лажа. Цитата Кстати, а переполнения таймера вы учитываете? При тактовой 16МГц за 1 сек измерения у 16-битного таймера произойдет 244 переполнения. Цитата А як-жеж(:-)! Специально написал, что все переменные 32-битные. Какие-то бестолковые у вас посты. Ей богу. AVR - 8-ми битный процессор. И таймеров у него 32х битных нет. От того что вы "специально" что-то написали, архитектура AVR не поменяется.
|
|
|
|
|
Apr 10 2007, 16:31
|

Местный
  
Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459

|
Цитата 2. Откуда здесь возьмется точность в +-0.02 Гц? Разве не так?: XTAL/Fвх - к примеру 16Мгц/170кГц=94такта на 1Гц Fвх. соответственно 1/94= 0,01% ..что тут не так?
--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
|
|
|
|
|
Apr 10 2007, 19:08
|

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

|
Цитата(rezident @ Apr 10 2007, 14:10)  Нет, не так! Время окна (количество импульсов) должен считать таймер0, который от измеряемой частоты тактируется. Таймер1 от опорной частоты тактируется. Причем по окончании счета (совпадении количества импульсов таймер0 с заданным) должен сработать "стоп"-захват у таймер1. Так вы ж сами говорили, что входная частота неизвестна, докуда тогда считать(:-)? Должно быть так. Входной сигнал подключен к таймеру0 И к схеме захвата таймера1. Таймер0 считает входные импульсы, таймер1 - системный клок 16 МГц. Попробую изобразить
Код МЕТОД ЗАХВАТА (предложил GM) ___ ___ ___ ___ ___ ___| |___| |___| |___| |___| входная частота ^ ^ | | |||||||||||||||||||||||||||||||||||||||| опорная частота Nнач=100 Nкон=16000100±1 Мнач=0 Мкон=170000 точно |<---примерно 1с--->| интервал измерения Fx=Fo*М/(N±1)=16000000*170000/(16000000±1)=170000±0.01 (числа приведены для односекундного интервала)
МЕТОД ВОРОТ (предложил defunct) ___ ___ ___ ___ ___ ___| |___| |___| |___| |___| входная частота ^ ^ | | |||||||||||||||||||||||||||||||||||||||| опорная частота Nнач=100 Nкон=16000100 точно Мнач=0 Мкон=170000±1 |<----точно 1с----->| интервал измерения
Fx=Fo*(М±1)/N=16000000*(170000±1)/16000000=170000±1 (числа приведены для односекундного интервала) Обратите внимание, что время захвата в первом варианте ВСЕГДА точно совпадает с фронтами входной частоты (вернее с точностью ±1 такт, дань синхронизму), а во втором варианте оно не совпадает (вернее совпадает но с точностью до ±1-го периода входной частоты). Различие маленькое, но ОЧ-ЧЕНЬ существенное. Различие приводит к тому, что точность различается почти в 100 раз ИЛИ, другими словами, можно почти в 100 раз уменьшить интервал наблюдения для достижения тоё же точности ±1 Гц. Так что автор темы спокойно может за 30-40 мс измерить последовательно все три частоты, а оставшееся время - 960 мс - делать козу методу defunct'a(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Apr 10 2007, 19:27
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(add @ Apr 10 2007, 16:31)  Разве не так?: XTAL/Fвх - к примеру 16Мгц/170кГц=94такта на 1Гц Fвх. соответственно 1/94= 0,01% ..что тут не так? не 1/94= 0,01% а 100\94=1.06% Не нужно так лихо коэфициенты переводить в проценты    соответсвенно все формулы с применением этого аргумента будут иметь как миниум туже погрешность. поэтому все приведенные выше формулы эффекта на меня не произвели. 2resident наконец то вы поняли о чем я ,(Таймер1 можно заменить и обычной задержкой в цикле если прерывания не планируются ) но к режиму таймера "Input Capture" (режим захвата) это никакого отношения не имеет.
|
|
|
|
|
Apr 10 2007, 19:54
|

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

|
Цитата(defunct @ Apr 10 2007, 12:11)  1. Чем ваше решение в таком случае отличается от предложенного мной в comment'e #6? 2. Откуда здесь возьмется точность в +-0.02 Гц? Читайте мой пост #23, там всё написано. Постарайтесь понять, это без подковырок, просто постарайтесь понять. Наглядная агитация в посте #43. Отличие небольшое, но приводящее к радикальным последствиям. У вас неточность определения ±1 периода входной частоты, а у меня ±1 такт опорной частоты. Отсюда различие в точности примерно в 100 раз. А в остальном ничем, ваш метод вполне работоспособен. Цитата(defunct @ Apr 10 2007, 12:11)  теперь ваша формула: проверим ее на частном случае, окно захвата - 1 секунда. В этом случае N = Fo, формула примет вид: Fx = M. Где же точность +- 0.02Гц? Ведь M - это целое число следовательно, с окном в 1 сек точность составит +- 1Гц. Вот тут вы не правы. В этом случае N=Fo±1, а М - "точное" целое (я имею в виду без всяких ±1). Да вы посчитайте по формуле два раза: один раз с N=Fo-1, другой раз с N=Fo+1. Сразу почувствуете разницу, в смысле максимальную ошибку). В посте #43 попытался это показать. В одном случае гуляет N, в другом - М, вся разница в этом. И потом, откуда вы берете ±2? Вроде бы я везде писал ±1. Цитата(defunct @ Apr 10 2007, 12:11)  Пример программы вы не приводите вероятно потому, что вы осознаете, что у вас там лажа. Не поэтому, просто по контракту не имею права, а писать что-то заново мне лениво. Вот если б кто-нибудь написал, я б подправил(:-). Цитата(defunct @ Apr 10 2007, 12:11)  Какие-то бестолковые у вас посты. Ей-богу. Ну напишите вы что-нибудь толковое по данной теме, покамест я ничего толкового от вас не увидел. А ваши так называемые идеи знали в древней иудее(:-). Разница между моей и вашей идеей - в 100 раз по точности ИЛИ по времени измерения! Я вот додумался как мерять частоту до Fo/2 с той же точностью на голом проце, у вас есть идеи? Давайте обсудим(:-). Цитата(defunct @ Apr 10 2007, 12:11)  AVR - 8-ми битный процессор. И таймеров у него 32х битных нет. От того что вы "специально" что-то написали, архитектура AVR не поменяется. Вы за собой получше смотрите. В посте #6 вы пишете "...значения 32-х разрядных счётчиков...", ну так, какие 32-х разрядные счетчики в 8-битовом процессоре? А я писал о 32-битных переменных, между прочим, а не о таймерах. Ну и в чём тут криминал? Это и называется трёп ни о чём. Или вот, говорите, что пост #2 не rezident писал, а кто? Несколько мессагов упирались. Ну и кто кого должен учить внимательности? Обратите внимание, в каждом посту вверху-справа стоит значок "решетка" # и номер поста.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|