2011-12-24 60 views
0

我使用pic18f4550其中它的端口的大小是6位兩個端口的數據之間的連接

我想讀寫一個8位的數據。 我所做的是寫數據(比如說)端口A和端口C

現在我想要做的是讀取所有6位形式的端口A並將它們與C的前兩位按順序連接將結果存儲在保存8位的字符中 我該怎麼做這樣的級聯?

換句話說我想做這個char a = PortA from(0-5)+ portc from(0:1)?

回答

0

只需移動,掩碼和OR這些位在一起,例如,

uint8_t a, b; 

// ... read data from ports A and B into a, b ... 

uint8_t c = (a << 2) | (b & 0x03); // shift a left by 2 bits and 
            // OR with LS 2 bits of b