Здравствуйте. Думал, что Вы были стартером этой веточки
http://forum.cxem.net/index.php?s=&show ... t&p=337307
V-скорость, по определению, это путь, пройденный в единицу времени [м/сек] или [км/час]
S[m]-путь в метрах
T-время прохождения пути S[m]
S[m]=100000(путь 100км)*Nx/62400(число оборотов вала тахогенератора за этот путь)
"как разобрать вот это выражение что за числа 1,6025641025641025641025641025641*Nx*65536/65536~105026*Nx/65536."
Один оборот вала тахогенератора эквивалентен 1,6ххххх метров, если 1000[метров] соответствуют 624 оборотам тахогенератора. Т.е. просто подсчитывая число Nx и умножая на 1,6ххххх метров получаем пройденный путь. Но... На асме (на сях,наверно, гораздо проще) умножение на дробное число довольно сложно, по крайней мере для меня. А вот предварительно посчитать 1,6ххххх метров*65536=105026 и забить его константой- эт запросто. Далее, после каждого
цикла измерения, умножаем на измеренное Nx и, отбрасывая два младших байта результата (что эквивалентно делению
на 65536), получаем путь, пройденный за время измерения в метрах.
"...а вот со скоростью и периодами не могу пока понять"
"Как правильно должен быть построен алгоритм работы спидометра"
Попробую более подробно рассмотреть пример N1 с точки зрения аппаратной реализации
исходные данные
-частота тактирования контроллера Fo=7'372'877Hz
-сигнал тахогенератора после формирователя поспупает на вход ICP1(PB0) ATmega8
-работа только с таймером Т1
10 инициализация
настраиваем таймер Т1 на счет 0...65535 без прескалера и работу по прерыванию от спада сигнала на входе ICP1 и по переполнению Т1
очищаем Т1, no, Nx и дополнительный счетчик числа переполнений "Т1" (зная, что за принятое время измерения ~0.3 сек, Т1 переполнится как минимум 33 раза 300'000[мксек]/(1'000'000[мксек]/7'372'877)=2'211'863,1/65536=33.75)
20 ждемс
30 О! Пришло первое прерывание CAPT. Запускаем Т1, устанавливаем признак начала измерения
40 ждемс, но по каждому прерыванию переполнения Т1 прибавляем +1 в счетчик числа переполнений c анализом окончания
времени измерения, а по каждому CAPT +1 в Nx.
50 Агаа! Число прерываний переполнения Т1=33, т.е. время измерения закончилось. Дожидаемся еще одного прерывания CAPT для получения целого числа Nx. Останавливаем Т1. Считываем содержимое ICR1 и дополнительного счетчика числа переполнений "Т1".
Все. Получены nox в формате "T1"+ICR1, где "T1" содержит старшую часть, а ICR1-младшую часть результата nox и Nx-целое число оборотов вала тахогенератора за время измерения.
Допустим, что nox=2'552'149 и Nx=6, т.е. за время nox*to=2'552'149*0,1356322[мксек]=0.346153[сек] пройден путь
1,602564*6=9.615384 метра. Скорость движения составляет 9.615384/0.346153=27.7778[м/сек] или 100.00 [км/час].