新闻  |   论坛  |   博客  |   在线研讨会
天梯 之 从零开始玩PIC——7.位变量的定义与引用
mayer | 2009-08-03 18:36:21    阅读:3381   发布文章

天梯 之 从零开始玩PIC——7.位变量的定义与引用

 

来源 CEPARK网站http://www.cepark.com/Index.html

再次遭遇非典(匠人被一个小小的分号绊倒了):位变量的定义与引用?

先看看匠人的程序:

//--------------------------------------------------------
//重新命名数据类型
//--------------------------------------------------------
typedef unsigned char    tU08;            //unsigned 8

//=================
//位结构类型定义
//定义一个位结构,结构名=BIT_F
//=================
typedef struct  {
    unsigned b0 : 1;                        //结构元素表
        unsigned b1 : 1;                                  
        unsigned b2 : 1;                                  
        unsigned b3 : 1;                                  
        unsigned b4 : 1;                                  
        unsigned b5 : 1;                                  
        unsigned b6 : 1;                                  
        unsigned b7 : 1;                                  
} BIT_F;                           //结构类型

//=================
//联合定义
//定义一个联合,联合名=FLAG_union
//=================
typedef union {
    BIT_F     oneBit;        
    tU08    allBits;    
}FLAG_union;                

//--------------------------------------------------------

//
FLAG_union     PORTC_TEMP;    //PORTC 口输出临时缓冲区

#define        PORTC_TMP    PORTC_TEMP.allBits
#define        LED00_TMP    PORTC_TEMP.oneBit.b3;  (请注意,这里多了一个分号,匠人就是被这个不起眼的分号给绊倒的!)

//--------------------------------------------------------
//接下来两条是程序中的指令
//--------------------------------------------------------

PORTC_TMP = 0 ;                    //不报错
PORTC_TEMP.oneBit.b3 = 1 ;                //不报错
LED00_TMP = 1 ;                    //报错(信息:Error[195] H:\pic\clolk_01\clock.c 224 : expression syntax)
//--------------------------------------------------------
请注意红色字体部分,该语句应该是等效于蓝色字体的吧?但是编译就是通不过?

上网查了一下,居然发现hotpower早在2004年已经修炼过此非典****了。看来要再次请教hotpower。把你的脑髓贡献一下吧……

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客