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.
Das Zauberwort Volatile fehlt in der Variablen Deklaration.
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.
Dussel schrieb: > Außerdem fehlt in main ein return, während die Interruptfunktionen > meiner Meinung nach unnötige returns enthalten. In mein() gehört bei Mikrocontrollern kein return rein. Das Programm kompiliert so IMO nicht, weil die #includes fehlen.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.