Zur Not muss ichs dann so machen:

Code:
void WRITE( uint8_t n, uint8_t device ){
if( device > 7 ){ device = 7; }
BUFFER[n][0] &=~ (1<<2)|(1<<1)|(1<<0);
BUFFER[n][0] = BUFFER[n][0] + device;
}

uint8_t READ( uint8_t n ){
device = (BUFFER[n][0]<<5);
device = (device>>5);
return device;
}
Aber es geht mir eigentlich nur darum, diese zwei Dinge zu vereinfachen.