[font=Times New Roman][size=4]
Привет, всем посетителям форума!
Возникла проблема с мегой 128...Может кто-нибудь из специалистов обратит внимание и разъяснит неопытному пользователю в чем проблема?
А вопрос в следующем...пытаюсь измерить период с точностью до 0,1 мкс. Для этого задействована пара счетчиков (вариантов уже накопилось множество, поэтому прикладываю самый простой на, мой взгляд). Измеряемый диапазон частот 600 Гц-2,5 кГц
Используется два таймера:
-Т/С0-генерирует 102, 4 кГц, при каждом совпадении счетного регистра осуществляется инкремент регистров-результата;
-Т/С2-считает импульсы с датчика-для обеспечения заданной точности 100*Т .
Как только досчитали до 100 останавливаем , обнуляем таймеры и передаем по ком порту на комп.
Мегу тактирую 7,3728 МГц (реально 7,3724 МГц)
Проблема в том, что откудо-то берется погрешность: при такой конфигурации программы 0, 2 мкс на всех измеряемых частотах...Но если расширить возможности программы и передавать на комп после различных преобразований, то результирующее число заметно искажается причем чем меньше измеряемая частота, тем больше прогрешность. Т.е. фактически, если между остановкой и новым запуском счетчиков вставить цикл (инкремент регистров), то в зависимости от к-ва выполняемых операций, меняется результат в результирующих регистрах счетчиков. Не ясно почему?
Работаю с STK500/501, AVR Studio 4.12 и самодельным Jtag ICE.
В качестве сигнала с датчика использую кварц STK500.