ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
387048 Топик полностью
йй (13.02.2013 05:50, просмотров: 1) ответил koyodza на даже получится 400 тыс, потому как два входа. Да, для AVR это перебор. Но пара 8-битных таймеров решают проблему
Имхо, уж если подойти творчески, всё реально, хотя признаюсь, особо серьёзно и тщательно не продумывал. Вариант: прерывание вообще только одно - int0, скажем по фронту, для первого сигнала. Второй сигнал просто смотрим в этом прерывании. Тут можно сыграть на том, что частоты близки. Если первый (который по прерыванию) чуть быстрее второго, второй за время между прерываниями, может либо один раз перещёлкнуться - это очень редко, либо дважды - это почти всегда. Если первый медленнее, второй перещёлкнется либо дважды - почти всегда, либо трижды - это редко. Тут главное отличить: когда одно перещёлкивание, а когда три. Для этого смотрим второй сигнал, дважды за прерывание. В 98% случаев, обе пары сэмплов, из соседних прерываний, покажут одно и тоже, т.е. 2 перещёлкивания - этот случай подсчитывать не надо. Когда в очередной паре сэмплов, будет отличие от предыдущей, то если частоты близки, там изменится только один сэмпл, в зависимости от того, выше или ниже частота второго сигнала. Между разными частотами есть "скольжение". По сути, это подсчёт, сколько раз и в какую сторону, фронт второго сигнала "проскользит" через прерывание. Вроде так...