LINUX.ORG.RU

История изменений

Исправление cache, (текущая версия) :

Если принять максимальную частоту вращения 6000 об/мин (условно, циферка удобная), то получается, что импульсы с датчика НМТ поступают с частотой 100Гц. Если счёт ведётся с частотой 512Гц, то дискретность измерения на максимальных оборотах - примерно 70°. Если 4096 - около 9°. Многовато, не? Даже если максимальная частота вращения меньше, всё равно погрешность значительна.

Минимальную частоту вращения, полагаю, можно определить, как 300 об/мин (думаю, стартер медленнее не крутит). Всё, что медленнее, можно считать остановом, бессмысленно зажигать искру на таких малых оборотах. Исходя из этого, можно определять максимальную расчётную длительность цикла - 200мс. Если частота прерываний от таймера - 4096Гц, то при длительности цикла 200мс максимальное значение твоего счётчика - ~820.

Итого - третий байт, вероятно, не нужен. И частоту прерываний я бы сделал побольше.

UPD: ну вот, мы пришли к одному выводу.

Исходная версия cache, :

Если принять максимальную частоту вращения 6000 об/мин (условно, циферка удобная), то получается, что импульсы с датчика НМТ поступают с частотой 100Гц. Если счёт ведётся с частотой 512Гц, то дискретность измерения на максимальных оборотах - примерно 70°. Если 4096 - около 9°. Многовато, не? Даже если максимальная частота вращения меньше, всё равно погрешность значительна.

Минимальную частоту вращения, полагаю, можно определить, как 300 об/мин (думаю, стартер медленнее не крутит). Всё, что медленнее, можно считать остановом, бессмысленно зажигать искру на таких малых оборотах. Исходя из этого, можно определять максимальную расчётную длительность цикла - 200мс. Если частота прерываний от таймера - 4096Гц, то при длительности цикла 200мс максимальное значение твоего счётчика - ~820.

Итого - третий байт, вероятно, не нужен. И частоту прерываний я бы сделал побольше.