Dein Code funktioniert nicht, weil du eine "1" um den Wert des Bitmusters verschiebst. Radbruch hat vergessen, das oberste Bit wieder an den Anfang zurückzuführen.
Code://CPU ATMega8515 include <stdint.h> int main( void ) { DDRC = 0xFF ; // PC0 an PORTC als Ausgang setzen PORTC = 0xFF; // Alle PIN C auf High =LED Aus (STK500) PORTC &= ~(1 << 0); // Erstes Bit löschen -> Bitmuster mit einer laufenden LED while(1) // Endlosschleife { const uint8_t pattern = PORTC; PORTC = (pattern << 1) | ((pattern & (1 << 7)) >> 7); // Alle Bits um eins nach links schieben, oberstes Bit maskieren und ganz nach rechts schieben _delay_ms(100); // Eine Sekunde warten... } return 0; }
Lesezeichen