Programmiergrundlagen für Elektronische Zündung
Wie berechne ich den aktuellen Zündzeitpunkt für eine selbstgebaute Elektronische Zündung mit Mikrocontroller?
Wenn man sich auf einen festen Interpolationsabstand festlegt, dann
kann man das in recht wenigen Takten erledigen.
Grundgerüst:
1. Drehzahl bestimmen
2. Tabellwert kleiner der aktuellen Drehzahl lesen
3. Tabellwert größer der aktuellen Drehzahl lesen
4. Differenz bestimmen
5. solange Tabellen_drehzahl + Interpolationsschritt < Drehzahl
Korrekturwert = Korrekturwert + Differenz
Tabellen_drehzahl = Tabellen_drehzahl + Interpolationsschritt
6. Korrekturwert = Korrekturwert / Interpolationsfaktor
7. Interpolierter Tabellenwert = Tabellenwert_klein + Korrekturwert
Wenn man als Interpolationsfaktor eine 2er Potenz wählt, sprich das
Teilen durch eine Shift-Operation ersetzen kann, sollte der
Rechenaufwand recht niedrig bleiben.
|