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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren