peter wrote:
> nun möchte ich im 1. schritt anhand der drehzahl einen zündwinkel
> ausgeben. Sprich eine Kennlinie in der steht bei der und der Drehzahl so
> der und der Zündwinkel ausgegeben werden.
> Gibts dann auch
> möglichkeit zischen den stützstellen zu interpolieren??
Sicher. Ich denke mal lineare Interpolation würde durchaus
ausreichen.
> Wie kann ich das am einfachsten in C realisieren?
Am einfachsten ist es, wenn du den Zündwinkel für Drehzahlen
in einem bestimmten Raster vorgibst. Sagen wir mal für alle
Vielfachen von 500 U/min hast du einen Zündwinkel.
Dann brauchst du noch ein Array, in dem für alle diese Drehzahlen
der zugehörige Zündwinkel abgelegt ist.
uint8_t Winkel[] = {
80, /* 0 U/min */
82, /* 500 */
82, /* 1000 */
85, /* 1500 */
87, /* 2000 */
....
}
Und dann brauchst du jetzt natürlich noch eine Formel, die
dir, ausgehend von einer bestimmten Drehzahl ausrechnet, an
welcher Stelle im Array der zugehörige Wert zu finden ist.
Könnte zb so aussehen:
uint16_t Drehzahl;
uint8_t Index;
..... irgendwie kommst du zu deiner Drehzahl
/* die rechnen wir um in einen Index in die Winkel-Tabelle: */
Index = Drehzahl / 500;
einzustellender_Winkel = Winkel[ Index ];
mit dieser einfachen Berechnung kriegst du für Drehzahlen
0 bis 499 Winkel[0]
500 bis 999 Winkel[1]
1000 bis 1499 Winkel[2]
1500 bis 1999 Winkel[3]
....
Wenn dir eine Abstufung von 500 U/min nicht reicht, kannst
du natürlich auch feiner unterteilen.