typedef, union 和 struct来处理位变量数据然后在同一处理数据例如:typedef union
{
struct
{
u8 fBreak:1;
u8 fBrock:1;
u8 fBarerr:1;
u8 fBatLow:1; u8 fBatHig:1;
u8 fTrap:1;
u8 fAmpErr:1;
u8 fPwmDown:1;
}bit;
u8 allbits;
}Fgs_StopState;
在电机控制中或者其他控制中有很多标志位,例如刹车标志,低压,过压,过流标志等需要将在运动中的电机停止下来,我们在检测的时候只需要将为标量置一或置零,例如在定义一个联合体:Fgs_StopState Fstop;将某一位置一或清零就可以这么写:Fstop.bit.fAmpErr = 1;在处理数据的时候,我们便于将数据统一处理,所以再此调用 (xx) =allbits;就可以读出所有变量数据了。例如只要以上的变量只要有一个为一就将电机停止,那么在C语言中我们就可以这样:
if(Fstop.allbits){ //电机停止运行} else {//电机继续运行}
|