Hallo,
vermutlich ist es ein einfacher Fehler, doch zunächst mein Quelltext:
Code:#include <avr/io.h> #include <avr/delay.h> void main(){ DDRB = 0xFF; // Alle Pins sind Output PORTB = 0xFF; // Alle LEDs ausschalten // Hier möchte ich z.B. um 2 nach links shiften PORTB &= (0<<2); // Restlicher Code nicht mehr relevant [...]
Mein Problem ist das shiften.
Wenn ich in PortB alles auf 1 setze, sind alle LEDs ausgeschaltet.
Nun möchte ich die dritte Lampe einschalten.
Dementsprechend müsste ich ja an die Stelle eine 0 schreiben wohingegend der Rest weiterhin 1 bleibt.
1111 1111 vorher
1111 1011 shift 0<<2
---------- logisches &
1111 1011
Mein PortB müsste also nach der Operation dem shiften
PortB so 1111 1011 aussehen.
Doch alle LEDs bleiben einfach an.
Hat jemand eine Idee?
Danke
Kesandal







Zitieren
Lesezeichen