Цитата(John851 @ May 5 2009, 13:41)

немного не понял в каком смысле употреблено слово "боретесь".
В смысле "Вся наша жизнь - ...". Не нравится "боретесь"? Подставьте "дружить", "работать", "мучаться" или любой более симпатичный Вам глагол в форме второго лица множественного числа.
Цитата
Помоему суть ясна - если задержку делать в 1 сек, то счетчик даже 16и битный на частоте в 750кГц переполнится не один раз, поэтому как только он переполняется так сразу к составному 24х битному регистру добавляется FFFF (значение переполнения). Затем когда 1 сек пройдет счетчик отключается и то что он насчитал записывается в регистры и также прибавляется к составному регистру.
Если означенное действо происходит где-то в WAIT, вопрос снимается. Но из представленного кода ни разу не следует, что переполнение таймера каким-либо образом обрабатывается. Видна только неловкая и безусловная (в смысле - независящая от наличия или отсутствия переполнения таймера) суета вокруг r1-r3 в весьма странном месте.
Цитата
Хм, интересно почему? Ну вопервых что то ведь должно считать отрезок времени на который таймер включен на прием внешних импульсов. Использовать другой таймер??
Я уже предлагал воспользоваться поиском по форуму. Можно еще и аппноты атмелёвые почитать.
Цитата
Во вторых - допустим я освободил МК от процедуры WAIT и что же он должен выполнять в течении 1 сек (во время выполнения процедуры WAIT кроме как обработки прерываний у МК нет других задач) спать? впринцыпе мне без разницы какое потребление энергии будет у МК, тк питается от сети, поэтому мне безразлично спит он или нет, а вот уже структуру программы это усложнит.
В принципе, МК может еще заниматься индикацией, опросом клавы, общением с внешним миром...
Даже если эти действа Вы не предполагаете, такое построение программы просто неудачно. Любая (самописная) прога - это приобретение опыта и наработка удобных шаблонов. Ваша прога в этом плане - опыт отрицательный.
Цитата
да, вы правы там таймер с предделителем внешних импульсов, в AVR это ксожалению невозможно сделать из-за другой структуры счетчика. Поэтому я и использую составной регистр.
Не проблема. Железо АВР позволяет без проблем считать такую частоту. Вам нужно только корректно обрабатывать переполнения таймера или выбрать такой интервал счета, чтобы эти переполнения не приключались.
Формула проста как манная каша: N
TMR = T
o * f
x.
N
TMR_max и f
x_max известны. Отсюда T
o <= N
TMR_max/f
x_max (имхо, так выбирался интервал счета и коэффициент предделителя для ПИК'а).
Несложно догадаться, что для АВР без предделителя на 8 интервал счета должен быть уменьшен в 8 раз (а не увеличен в 2.5).
Из этой же формУлы следует, что, если не учитывать погрешность пробразователя L/C->f
x, погрешность прибора определяется погрешностью задания T
o. Именно поэтому метания между 0.4 с и 1 с мне кажутся бессмысленными, и возникают сомнения в декларируемой Вами точности прибора.
Цитата
как я понял вы что-то хотите сказать насчет того зачем я увеличил промежуток времени с 0,4 сек до 1 сек?? если да, то повторятся не буду я уже в нескольких сообщениях описал почему я так сделал. И что в этом плохого? ну увеличил интервал и сделал прямой счет частоты без всяких умножений на 4 как это было бы с задержкой в 0,4 сек.
См. выше. Если осмыслить не удастся, "ну извиняй, боярин" - повторяться я тоже не буду.