ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
260696
PAV256 (04.07.2011 18:16, просмотров: 1548)
Прошу помочь. Имеется ATxmega192D3, работающая на частоте 30МГц. На один из портов подаются положительные импульсы длительностью мин.:10мкс. Расстояние между импульсами мин.:100мкс. Проводится непрерывный замер времени между импульсами (положительными фронтами) (инициализация в прикрепленном файле). Кратко. По положительному фронту порт выдает событие, по которому производтся защелкивание длительности импульса в таймере, который в свою очередь выдает прерывание в котором и происходит дальнейшая обработка. Аналогичных каналов несколько. Проблема заключается в том, что наблюдается пропуск импульсов, т.е. не все фронты вырабатывают события. При этом чем меньше расстояние между фронтами (ограничения см.выше), тем больше вероятность пропуска события! Захват при этом отрабатывается нормально, т.е. выдает расстояние не между ближайшими импульсами (фронтами), а через один. Либо событие не доходит, либо, что более вероятно оно не вырабатывается портом при "небольшом" расстоянии между фронтами!? При этом на осциллографе наблюдаются идеальные импульсы! Чего то я недопонимаю, частота не бог весть какая, прерывания по ошибке счетчика не выскакивает, errata изучил - мимо, просидел 2 дня (чего только не пробовал, но видно процесс повис) так и не смог разобраться! Помогите, киньте мысль, куда копать?