Code:
PORTB = PORTB & 0b11110001; // PB1/2/3 ausschalten
PORTC = PORTC & 0b11110001; // PC1/2/3 ausschalten
if (muster[0] & 1) // Falls Bit 0 von muster[0] gesetzt ist...
PORTC = PORTC | 0b00001000; // ... PC3 einschalten
if (muster[0] & 2) // Falls Bit 1 von muster[0] gesetzt ist...
PORTC = PORTC | 0b00000100; // ... PC2 einschalten
if (muster[0] & 4) // usw. usf.
PORTC = PORTC | 0b00000010;
if (muster[0] & 8)
PORTB = PORTB | 0b00001000;
if (muster[0] & 16)
PORTB = PORTB | 0b00000100;
if (muster[0] & 32)
PORTB = PORTB | 0b00000010;
Zwar nicht allzu elegant, sollte aber funktionieren (habs jetzt nicht probekompiliert)
Gruß
[EDIT]
Das hier sollte auch funktionieren:
Code:
PORTB = PORTB & 0b11110001; // PB1/2/3 ausschalten
PORTC = PORTC & 0b11110001; // PC1/2/3 ausschalten
PORTC = PORTC | (0b00001000*(muster[0] & 1)) | (0b00000100*((muster[0] & 2)/2)) | (0b00000010*((muster[0] & 4)/4));
PORTB = PORTB | (0b00001000*((muster[0] & 8)/8)) | (0b00000100*((muster[0] & 16)/16)) | (0b00000010*((muster[0] & 32)/32));
Bin mir aber nicht ganz sicher, obs wirklich so hinhaut...
Lesezeichen