Probleme mit ROL / ROR und AvrStudio Simulation

OP #1809718
Lesenswert?

Hallo zusammen!



Ich versuche ein LED Lauflicht zu programmieren (Wie schon millionen 
Anfänger vor mir). Genauer gesagt soll es "normal" links herum laufen, 
aber wenn man auf einen Taster drückt (im Code angeschlossen an PIND.0) 
soll es die Richtung ändern.

Die Hardware ist das STK500 mit dem mitgelieferten AtMega8515L, die 
verbauten LEDs und Taster werden verwendet.
Code im Anhang. Ist wahrscheinlich alles noch sehr ungeschickt 
programmiert, dafür kommentiert.
Vor dem ausführen wird timer=50000 gesetzt, die 1 nur zum simulieren.


Jetzt das eigentliche Problem:

In der Simulation funktioniert das ganze Prima. Alle Unterprogramme 
laufen durch, gibt nichts zu meckern. Wenn ich mir PORTB anschaue läuft 
alles exakt wie gewünscht, mit den Carry Bits gibts auch keine Probleme.

Aber sobald ich das Programm auf den Atmega lade funktioniert es 
nichtmehr. Es leuchtet nur der Angangszustand, also die erste LED und 
das wars dann.

Um das Problem zu lösen habe ich folgendes probiert:

Jeder Programmteil (also rechtsrum / linksrum) habe ich  in ein eigenes 
Programm gepackt und raufgeladen - Beide Richtungen funktionieren an 
sich.

Dann hab ich die "Abfrageroutine" rausgeschrieben und zwei einfachere 
Unterprogramme konstruiert: Für "nicht drücken" sind alle Lichter aus, 
beim drücken geht eine LED an PORTB an - funktioniert auch.

Sobald ich alles zusammenpacke geht es in der Simulation ganz normal, 
aber nicht mehr auf dem Controller.


Was könnte ich falschmachen?
Vielen Dank für die Hilfe!

Grüße,

Patrick
Angehängte Dateien:

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