Das mit dem aktiven Freilauf ausschaltbar machen, hab ich erstmal hinten angestellt, sollte ja nur eine Art Studie sein
Ja, ich hab mir schon folgendes vorgestellt:
Code:
//declaration
int16_t PwmArray[2];
int16_t SdArray[2];
...
//left
PwmArray[0] = 1; SdArray[0] = 1;
PwmArray[1] = 0; SdArray[1] = 0;
//right
PwmArray[0] = 0; SdArray[0] = 0;
PwmArray[1] = 1; SdArray[1] = 1;
...
//StateMachine
PhaseAPwm = PwmIn * PwmArray[0];
PhaseBPwm = PwmIn * PwmArray[1];
PhaseASd = SdArray[0];
PhaseBSd = SdArray[1];
Mal sehen, obs funktioniert wie ich mir das vorstelle und ob ich nicht noch eine einfachere Variante finde, v.a. weil ich noch keine Idee für die AC-Einstellungen habe.

Momentan hab ich anfangs eine 2sec Wartezeit, anschließend gibt er Töne aus, dreht langsam hoch, gibt kurzzeitig 1/2 Vollgas und stoppt wieder.

Dass die Drehzahlregelung auch ohne diese Infos an jedem beliebigen Motor funktioniert, zeigen verschiedene Regler, u.a. Mikrokopter BL3.0 oder auch "normale" Modellbauregler (z.b. Graupner), welche einen sog. Govenor-Modus haben.
Aber leider kann ich mir eben auch nicht vorstellen, wie das funktionieren soll ...
Ich hab mir mal die Drehzahl (bzw. die Kommutierungszeitpunkte) ausgeben lassen, da geht wohl noch was (hoffe ich zumindest).

Gruß
Chris