Zwar nicht allzu elegant, sollte aber funktionieren (habs jetzt nicht probekompiliert)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;
Gruß
[EDIT]
Das hier sollte auch funktionieren:
Bin mir aber nicht ganz sicher, obs wirklich so hinhaut...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));







Zitieren


Lesezeichen