在epwm模块里面基本全是16位的寄存器,但是定义16位寄存器位域的时候,会报警告,说unsigned short这个类型不是标准的定义位域的类型,并且就算强行运行了,寄存器对这样定义的位操作没有反应。。
比如,其中Uint16就是unsigned short
struct TBCTL_BIT {
Uint16 CTRMODE :2;
Uint16 PHSEN :1;
Uint16 PRDLD :1;
Uint16 SYNCOSEL :2;
Uint16 SWFSYNC :1;
Uint16 HSPCLKDIV :3;
Uint16 CLKDIV :3;
Uint16 PHSDIR :1;
Uint16 FREE_SOFT :2;
};
union TBCTL_REG {
Uint16 all;
struct TBCTL_BIT bit;
};
如果我想用16位的未定义来操作寄存器我应该怎么办嘞?
Shine:
用(Unit16)强制定义试试看