Kontroller erkennt Variablenwertänderung nicht

OP #4341806
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe ein kleines Problem mit meinem Programm. Vielleicht sieht 
eineer von euch ja meinen Fehler.

Das Programm läuft auf einem Atmega328p und wird in der 
Arduino-Entwicklungsumgebung geschrieben. Der Krotroller soll eine 
sogenannte Spinning Clock steuern.

Nun zum Problem:

Ich lasse den Timer0 im Compare Modus laufen. Er ist so eingestellt, 
dass er alle 6° einer Umdrehung einen Interrupt auslöst und mir dann in 
der Variable "changed" anzeigen soll, dass er ausgelöst hat. Die 
Interruptroutine funktioniert auch.
In der Hauptschleife wird die Variable "changed" abgefragt und wenn sie 
gesetzt ist, wird der eigentliche Teil abgearbeitet. Nur ist diese 
Beding scheinbar nie war (daran zu erkennen, dass die LED an PORTB Pin 0 
nie leuchtet) und ich verstehe nicht warum.

Den kompletten Code findet ihr im Anhang. Ich hoffe, ich habe das 
Problem weitgenug beschrieben.

Vielen Dank für eure Hilfe,
M.W.
Angehängte Dateien:
Gast #4341819
Lesenswert?
• ▲
▼
M. W. schrieb:
> Der Krotroller soll eine sogenannte Spinning Clock steuern.
Der heißt Mistkäfer und ist nicht für solche Lasten ausgelegt.

Außerdem fehlt in main ein return, während die Interruptfunktionen 
meiner Meinung nach unnötige returns enthalten.

Beim eigentlichen Fehler stimme ich Jojo zu.
OP #4341855
Lesenswert?
• ▲
▼
Dussel schrieb:
> M. W. schrieb:
>> Der Krotroller soll eine sogenannte Spinning Clock steuern.
> Der heißt Mistkäfer und ist nicht für solche Lasten ausgelegt.
>
> Außerdem fehlt in main ein return, während die Interruptfunktionen
> meiner Meinung nach unnötige returns enthalten.
>
> Beim eigentlichen Fehler stimme ich Jojo zu.

Hey, super vielen Dank. Das es so eine Kleinigkeit war, hatte ich schon 
gedacht, aber daran hätte ich jetzt echt nicht gedacht. Dann muss ich 
wohl nochmal nachlesen, was dies Wörtchen volatile genau bewirkt.

Und der kleine Mistkäfer steuert nur ein Paar LEDs, das schafft der 
schon ;)

Ja, die returns hab ich jetzt rausgenommen bzw. in der main eins 
hinzugefüt.

Vielen Dank, jetzt leuchten die LEDs schonmal, auch wenn der rest des 
Algorithmus' noch nicht passt

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.