Das Interrupt dient in dem Programm dazu ein Gyro alle ~10s auszulesen und in einen Winkel umzurechnen, der dann später zur Korrigierung der Position im Raum für ein Flugzeug verwendet werden soll.
Du darfst keine Fließkommaberechnungen drin haben und bitte rechne alle Konstanten aus. Es hat keinen Sinn daß Arduino 2 Multiplikationen und 1 Division machen muß wenn 1 Multiplikation genügen würde.
uwefed:
Wieso glauben alle genau zu wissen, wo der Fehler liegt, ohne zu wissen was der Fehler ist, und darum nur einen Ausschnitt des Sketches mitzugeben.
Bitte den gesamten Sketch. Danke
Ich kann mal soviel sagen, daß die Interruptfunktion viel zu lange ist.
Du darfst keine Fließkommaberechnungen drin haben und bitte rechne alle Konstanten aus. Es hat keinen Sinn daß Arduino 2 Multiplikationen und 1 Division machen muß wenn 1 Multiplikation genügen würde.
WinkelX += x*0,000175;
Viele Grüße Uwe
Naja, also der original-Sketch ist ungefär 1000 Zeilen lang. Okay ich werds mal ausprobieren Danke schonmal für deine Hilfe!
Musste den Sketch anhängen, da er für die Code-Zeile zu groß ist
Gruß, Alex
EDIT: Funktioniert immernoch nicht
Liegt's vielleicht daran, dass in der Interruptschleife noch eine neue Schleife aufgerufen wird?
Ich habe schoneinmal eine Fehlerquelle entdeckt:
Timer1 wird bereits von der Servolibrary verwendet.
Nur wie kann man Timer2 einschalten? Gibt es dafür auch eine Lib?