gcc Optimierung nicht ganz nachvollziehbar

Gast #1638776
Hallo Forum,

mit oben angehängten Code wollte ich mir mit Hilfe von Timer0 eine 
Zeitbasis schaffen um daraus Zeitslots zu generieren in denen ich 
verschiedene Funktionen aufrufen kann.
Soweit so gut. Stelle ich die Optimierung des gcc ab (-o0), dann 
funktioniert der Code auch wie gewünscht.
Aktiviere ich die Optimierung läuft der Code bei o2, o3 und os nicht 
mehr wie gewünscht, was für mich nicht ganz verständlich ist.
Mir ist schon klar, dass bei solchen Fällen der Fehler meist am 
Programmierer und nicht am Compiler liegt. Allerdings finde ich keinen 
Fehler.
Ach ja: a,b und c habe ich eingeführt, um Anweisungen in den Funktionen 
slot_10ms, slot_100ms und slot_1000ms stehen zu haben.

Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus.

Gruß,
Seb.
Angehängte Dateien:
#1638780
Wie üblich: volatile vergessen.

PS: Andreas sollte mal ins Forensystem was einbauen, so dass man schon 
beim Tippen der Begriffe "Compiler" und "Optimierung" automatisch bei 
einer passenden Erklärung von "volatile" landet. ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.