Hallo zusammen.
Ich wollte mir ein Lauflicht programmieren, was von links nach rechts
und von rechts nach links läuft. Allerdings bin ich auf ein etwas
merkwürdiges Problem gestoßen.
Mein Lauflicht soll am Port 0 ausgegeben werden. Für das Lauflicht von
rechts nach links sieht das ganze dann so aus:
1 | {
|
2 | x=0x01;
|
3 |
|
4 | for(z=1;z<9;z++)
|
5 | {
|
6 | P0=x;
|
7 | x=x<<1;
|
8 | init(); // Timer für Pause aufrufen
|
9 | }
|
10 | }
|
Das funktioniert soweit auch noch einwandfrei.
Dann müsste das ganze von links nach rechts ja wie folgt aussehen:
1 | {
|
2 | x=0x80;
|
3 |
|
4 | for(z=1;z<9;z++)
|
5 | {
|
6 | P0=x;
|
7 | x=x>>1;
|
8 | init(); // Timer für Pause aufrufen
|
9 | }
|
10 | }
|
Komischer Weise funktioniert dies aber nicht. Die "1" wird zwar um eine
Stelle nach rechts weitergeschoben, aber die vorherige Stelle wird nicht
mehr mit einer 0 aufgefüllt, sondern bleibt 1 . Ich habe also eine
"auffüllendes Licht", sodass am Ende alle LED's an sind.
Kann mir jemand vielleicht sagen wo mein Fehler ist ?
MfG