Цитата
Судя по reti, с таймером Вы боретесь в прерывании (каком?)
немного не понял в каком смысле употреблено слово "боретесь". Помоему суть ясна - если задержку делать в 1 сек, то счетчик даже 16и битный на частоте в 750кГц переполнится не один раз, поэтому как только он переполняется так сразу к составному 24х битному регистру добавляется FFFF (значение переполнения). Затем когда 1 сек пройдет счетчик отключается и то что он насчитал записывается в регистры и также прибавляется к составному регистру.
Цитата
Завешивать контроллер на 0.4 с или на 1 с в тупом WAIT, да еще и в прерывании, некошерно
Хм, интересно почему? Ну вопервых что то ведь должно считать отрезок времени на который таймер включен на прием внешних импульсов. Использовать другой таймер?? Во вторых - допустим я освободил МК от процедуры WAIT и что же он должен выполнять в течении 1 сек (во время выполнения процедуры WAIT кроме как обработки прерываний у МК нет других задач) спать? впринцыпе мне без разницы какое потребление энергии будет у МК, тк питается от сети, поэтому мне безразлично спит он или нет, а вот уже структуру программы это усложнит.
Цитата
что в нем таймер ПИК'а использовался с предделителем на 8.
да, вы правы там таймер с предделителем внешних импульсов, в AVR это ксожалению невозможно сделать из-за другой структуры счетчика. Поэтому я и использую составной регистр.
Цитата
Вы пытаетесь измерить, т.е. подсчитать число периодов за образцовый интервал времени. К чему тогда фривольные упражнения с этим интервалом? Пытаетесь подогнать задачу под ответ?
как я понял вы что-то хотите сказать насчет того зачем я увеличил промежуток времени с 0,4 сек до 1 сек?? если да, то повторятся не буду я уже в нескольких сообщениях описал почему я так сделал. И что в этом плохого? ну увеличил интервал и сделал прямой счет частоты без всяких умножений на 4 как это было бы с задержкой в 0,4 сек.
Цитата
Насчет "Прибор получился достаточно точный..." тоже есть сомнения хотя бы из-за способа формирования интервала времени счета.
я не сомневаюсь, потому что я его уже сделал и еще раз повторюсь что достаточно точный для меня. Конечно он 0,1 пФ навряд ли вычисит но 1 пФ у меня вычислился точно.
Цитата
А задача измерения (такой) частоты весьма примитивна
понятно что эта задача примитивна и чем мое решение этой задачи неверно?? помоему нормальное решение, просто сложнее мне нет надобности делать. Конечно, если будет критично подвешивание МК процедурой WAIT, то я избавлюсь от нее и перенесу эту задачу на переферию, а усложнение кода мне никчему в данной задаче.
Всегда уходим от моего вопроса, на который я очень хочу узнать ответ. Это хорошо конечно, что мне говорят где в моем коде есть нерациональные моменты и какой точности прибор, но проблема в другом:
Цитата
Если включать таймер на 0,4 секунды (как это написано в техн. описании прибора), то наблюдается что то непонятное. Тестовая частота 760 Кгц на счетчике за этот период времени насчитывается без проблем, но стоит подключить конденсатор с нанофарадной емкостью (к примеру 100 нФ), так с МК начинают приходить очень странные данные - всегда заполнен только младший байт и значения в нем колеблются от 0 до 255. я и подумал, что проблема в частоте поступающих импульсов.
С увеличением задержки до 1 секунды проблема исчезает.
Вопрос: почему так происходит?? вроде же таймеру всеравно сколько времени считать и неважно какой частоты приходят импульсы. Возможно МК с деффектом или счетчик AVR всетаки имеет какие то ограничения.