我做了一個有點聲明的dsPIC30F4011的位申報了兩個寄存器
我宣佈一個部分
typedef struct tagCxTXxSIDBITS_tagCxTXxEIDBITS {
unsigned : 2;
unsigned SRC7_2 : 6;
unsigned : 8;
unsigned : 14;
unsigned SRC1_0 : 2;
} CxTXxSRCBITS;
extern volatile unsigned int C1TX0SRC __attribute__((__sfr__));
extern volatile CxTXxSRCBITS C1TX0SRCbits __attribute__((__sfr__));
extern volatile unsigned int C1TX1SRC __attribute__((__sfr__));
extern volatile CxTXxSRCBITS C1TX1SRCbits __attribute__((__sfr__));
extern volatile unsigned int C1TX2SRC __attribute__((__sfr__));
extern volatile CxTXxSRCBITS C1TX2SRCbits __attribute__((__sfr__));
這是正確的嗎?前兩個CxTXxSID位是0還是1?那麼CxTXxSID位2-7和8是CxTXxSID位8-15是CxTXxEID位0-13的14位?而最後兩個CxTXxEID位14和15?
如果是,我做了正確
如果我寫在我的代碼
C1TX0SRC = 0x0001;
我會得到下面的寄存器?
C1TX0SID = 0b0000000000000000
C1TX0EID = 0b0100000000000000