История изменений
Исправление
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.
Итого - третий байт, вероятно, не нужен. И частоту прерываний я бы сделал побольше.