Цитата(Duduka @ Feb 28 2007, 12:49)

А вопрос в следующем...пытаюсь измерить период с точностью до 0,1 мкс. Для этого задействована пара счетчиков (вариантов уже накопилось множество, поэтому прикладываю самый простой на, мой взгляд). Измеряемый диапазон частот 600 Гц-2,5 кГц
Давайте переведём 600 Гц - период 1666.7мкс (411Ah единиц с шагом 0.1мкс)
2.5кГц - 400.0 (FA0h единиц с шагом 0.1мкс)
Таким образом вам необходимо посчитать импульсы частотой 1/0.1мкс = 10МГц и для этого достаточно 16-ти битного таймера. Из приведенного видно что на частоте 7372800 вы не получите данную точность без внешних элементов.
Необходимо применить кварц с частотой не менее 10МГц.
Если мы применим кварц 10 МГц, то необходимо следующее.
1) Настроить выход меги в режиме генерации CLK.
2) Применить 1533ли1 к примеру (Если мерим длит. положительного импульса). Если надо определять что мерить полож или отриц, то незначительно сложнее не всё поместится на одной ЛА3 или 74hc00.
3) Измеряемый сигнал подать на 1 ногу а заполнение на вторую. С выхода (третья нога) на вход захвата
шеснадцатибитного таймера (например IC1A).
4) Также измеряемый сигнал подаём на вход INT0 к примеру.
5) Настраиваем прерывание от INT0 на прерывание по перепаду в 0.
6) Настраиваем таймер один канал а на захват.
Алгоритм измерения следующий.
По прерыванию от Int0 (конец полож импульса измеряемого сигнала - измерение закончилось) мы читаем значение ICR1A, что и является значением периода измеренного сигнала (можно выводить). И сбрасываем значение ICR1A таймера (начинаем новый отсчёт)
Программу вашу не читал. Пока без надобности. Необходимо что бы вы сами поняли что хотите сделать и внятно смогли другим объяснить.
Да... упустил одну деталь которую сам же и писал...
На частоте 10MHz ваша однокристалка не сосчитает импульсы 10MHz. По этому изменения следующие (тоже писал в предыдущем посте).
Между выходом мелкосхемы и счётным входом однокристалки необходимо поставить доп счётчик. К примеру ИЕ7 а его выходы (4 штуки) на свободные входы однокристалки. При чтении необходимо читать ICR1A (старшие 16 разрядов) и входы счётчика (младшие 4). В остальном нет отличий.