英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

标题: 关于BOOL量的一点应用。 [打印本页]

作者: winnie    时间: 2009-3-27 14:27
标题: 关于BOOL量的一点应用。
/*bit型变量只能是全局的或静态的,
而有时我门在实际应用中既要改变某“位"变量的值;
又要保证这个函数的独立性;那不可避免的要把
这个函数做成有参函数,可是bit型变量是不能用做参数的;
那该咋办泥?还好!有位段。
看看:*/
/********************************************/
union FLAG
{
unsigned char BYTE;
struct
{
  unsigned char b0:1;
  unsigned char b1:1;
  unsigned char b2:1;
  unsigned char b3:1;
  unsigned char b4:1;
  unsigned char b5:1;
  unsigned char b6:1;
  unsigned char b7:1;  
}bool;
};
/********************************************/
union      FLAG               mode;
#define    auto_bit         mode.bool.b0
#define    cool_bit         mode.bool.b1
#define    dar_bit         mode.bool.b2
#define    fan_bit         mode.bool.b3
#define    heat_bit         mode.bool.b4
#define    swing_bit     mode.bool.b5
#define    bed_bit        mode.bool.b6
#define    time_bit         mode.bool.b7
/********************************************/
void mode_task(in_mode)
union FLAG *in_mode;
{
in_mode -> bool.b0=1;
in_mode -> bool.b5=1;
/*也可这样写
in_mode -> BYTE|=0x21;*/
}
/********************************************/
void main(void)
{
  mode.BYTE=0X00;
  while(1)
  {
   mode_task(&mode);
  }
}
/********************************************/
这样写多爽!
这里涉及了结构,联合,位段,及指针;可得先把基础概念搞清楚!




欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) Powered by Discuz! X3.2