Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
я сам делал 60-2 на АТ2313 тахометр + определение УОЗ, работает устойчиво.сигнал с ДКПВ завожу на INT0. алгоритм :
-устанавливю флаг состояния в 0 - поиск зуба
-по прерыванию если флаг=0 запускаю таймер , флаг =1 - замер длительности между прерываниями (зубьями)
-по прерыванию если флаг=1 останавливаю таймер , маскирую три младших разряда нулями (для устранения погрешности измерения между соседними зубьями) , запоминаю ,обнуляю таймер и запускаю его, фаг = 2 - найден зуб
-по прерыванию если флаг=2 останавливаю таймер , маскирую три младших разряда нулями и сравниваю с предыдущим измерением , если значения одинаковые , то обнуляю таймер и запускаю его , если нет то флаг = 3 - синронизация , найден 1-й зуб
-по прерыванию если флаг=3 тупо считаем № зуба , если № зуба = 20 то это ВМТ 1-4-го цилиндров флаг=4
-по прерыванию если флаг=4 тупо считаем № зуба , если № зуба = 50 то это ВМТ 2-3-го цилиндров флаг=0 -поиск зуба , те синхронизирумся на каждом обороте .
причём я сначала сваял имитатор шкива 60-2 , отладил с ним
Составить ответ | Вернуться на конференцию
Ответы