本帖最后由 xxqg1 于 2015-9-11 14:47 编辑
本人刚刚接触PIC,用的是MAPLAB X IDE V3.05开发环境,XC8编译器。
头文件<PIC16F616.H>中有这么一段定义:
typedef union {
struct {
unsigned RA0 :1;
unsigned RA1 :1;
unsigned RA2 :1;
unsigned RA3 :1;
unsigned RA4 :1;
unsigned RA5 :1;
};
} PORTAbits_t;
extern volatile PORTAbits_t PORTAbits @ 0x005;
// bitfield macros
#define _PORTA_RA0_POSN 0x0
#define _PORTA_RA0_POSITION 0x0
#define _PORTA_RA0_SIZE 0x1
#define _PORTA_RA0_LENGTH 0x1
#define _PORTA_RA0_MASK 0x1
第一个问题:为什么联合体中的结构体不定义名字,使用方式PORTAbits.RA5=1;编译会有unable to resolve identifier RA5;“无法解析标识符RA5”的提示,但是下载使用没有异常。一旦给联合体中的结构体命名如PAA,使用方法PORTAbits.PAA.RA5=1;编译没有任何提示,使用正常。我的第一个用法是不是有问题?
第二个问题:在头文件中“#define _PORTA_RA0_POSN 0x0”这些define都是用来做什么的,什么时候使用?
麻烦大师们解惑,度娘表示无力。
|