我試圖將變量映射到來自不同端口的IO。我能找到的最接近的例子是這樣的:將變量映射到來自不同端口的IO
union {
struct
{ // specify each bit in this char byte
unsigned bit0:1 ; // name each member and size
unsigned bit1:1 ;
unsigned bit2:1 ;
unsigned bit3:1 ;
unsigned bit4to6:3 ; // example set to 3 bits
unsigned bit7:1 ;
};
unsigned char allbits; // overall type of union
} Flag ; // name of union = Flag
Flag.allbits = 0x12; // sets value of union/bits to 0x12
Flag. bit2 = 0; // clear the if (Flag. bit2==1), etc
if (Flag. bit2 == 1) etc
是否有可能而不是0位,第1位,第2位等,以從不同的端口有IO位?事情是這樣的:
union {
struct
{ // specify each bit in this char byte
LATAbits.LATA5:1 ; // name each member and size
LATAbits.LATA7:1 ;
LATBbits.LATB2:1 ;
LATBbits.LATB4:1 ;
LATBbits.LATB5:1 ;
LATCbits.LATC0:1 ;
LATCbits.LATC1:1 ;
LATCbits.LATC2:1 ;
};
unsigned char allbits; // overall type of union
} Flag ; // name of union = Flag
Flag.allbits = 0x12; // sets value of union/bits to 0x12
什麼對我來說重要的是要能設置整個聯盟的價值,而不是一定要訪問各個位。
如果您在談論C編程語言,您可能需要添加C標記。 –
第一個定時器。抱歉。完成了。 –
位域只允許爲整數類型。我沒有看到你的實現有問題。嘗試命名你的結構'LATCbits'以便能夠像那樣訪問它們。 –