单片机的位定义
typedef unsigned char uchar;
uchar bdata flag;
sbit F1 = flag^0;
sbit F2 = flag^1;
...
sbit F8 = flag^7;
之后就可以对F1—F8这些变量进行bool操作了。
在飞思卡尔单片机中,我们却用结构体实现相关定义:
struct{
byte F0 :1;
byte F1 :1;
byte F2 :1;
byte F3 :1;
byte F4 :1;
byte F5 :1;
byte F6 :1;
byte F7 :1;
}Flag;
定义完毕,我们就可以这样使用了。Flag.F0 = 1 or 0;...Flag.F7 = 1 or 0.
建议大家多多使用这种位定义的方式对要用到的标志位进行定义,节约内存空间。
评论