Gast
#1606614
Hallo Leute, ich programmiere auf einem AVR mit AVR-GCC und debugge mit AVR-Studio4 nun bin einem echt heimtückischen Bug in meinem Programm auf der Spur... Ich habe bemerkt, dass eine meiner Funktionen manchmal viel zu lange dauert, um berechnet zu werden. Klar, kann passieren, dachte ich, schließlich wird sie ja immer mit unterschiedlichen Werten gespeist. Nun wollte ich gucken, bei welcher Art von Werten die Funktion Probleme bekommt, habe aber überhaupt keine Systematik finden können. Habe eine acos Funktion in meiner Funktion. Es scheint, als ob hier der Bug sitzt... Zufällig bin ich darauf gestoßen, dass selbst wenn ich in meinem Prog acos mit den Selben Werten lade, es manchmal (aber eher selten) statt 4000 Takte 56000 Takte braucht! Das Ergebnis ist dabei immer richtig. Habe daraufhin versucht das Nachzustellen: habe an der Stelle, wo das auftritt folgendes gemacht:
1 | |
2 | |
3 | |
4 | |
d123 ist ein float, alles andere sind Konstanten. Manchmal, nicht systematisch, braucht eine dieser Rechnungen 56000 Takte. Woran könnte das liegen? Ich habe eine sehr zeitkritische Anwendung und kann auf diese 52000 Takte kaum verzichten... Gruß, Yaro