Gast
#482528
Hallo! Leider sind meine ersten Gehversuche in C nicht sehr von Erfolg gekrönt. Ich möchte die PWM eines ADXL-Beschleunigungsensors einlesen. Das hat in Assembler auch schon gelungen. Nun das gleiche in C, bitte fragt mich nicht warum... Das Problem ist nun, dass die Timerwerte nur in gewissen Bereichen schön mit der Neigung des Sensors ändern. Es gibt aber auch Bereiche wo die eingelesenen Timerwerte riesige Sprünge machen obwohl der Sensor nur sehr wenig mehr bzw. weniger geneigt wird. Ein Timerüberlauf ist es nicht, da auch mit grösserem Vorteiler das gleiche zu beobachten ist. Auch in Assembler hat es mit prescaler = 1 funktioniert. Ist es möglich, dass es an den Variablendeklarationen liegt? Oder seht ihr sonst irgendwo einen Fehler? Ich habe noch extra viel Kommentare in den Code geschrieben, in der Hoffnung, dass ihr seht was ich da überhaupt machen will. Gerne könnt ihr auch den Programmierstil bemängeln, aber lieber erst das Problem lösen... Die Interrupts werden in der Richtigen Reihenfolge ausgeführt und auch die Verzweigungen werden schön abwechselnd ausgeführt, das habe ich per UART-Ausgabe verifiziert. Das angehängte File ist nur ein Ausschnitt des Gesamtprogramms, das mit dem ADXL zu tun hat. Möglicherweise geht ein copy-paste und compilieren nicht reibungslos. Danke für alle Tipps