我想为每个数字端口引脚分配单独的名称,例如,PORTA引脚,我希望能够将RA0,RA1等称为RED_LED,BLUE_LED等,所以我可以写以下内容:
RED_LED = 0;
BLUE_LED = 1;
目前我必须使用:
RA0 = 0;
RA1 = 1;
例如,当放置在main()函数中时,上述工作。
我需要编写哪些代码才能执行此操作?我尝试过以下方法:
#define RED_LED RA0;
#define RED_LED @ RA0;
volatile bit RED_LED = RA0;
volatile bit RED_LED = @RA0;
这些都不起作用 - 当我尝试在代码中使用别名时,它们都会产生错误。
在编译器附带的pic16f628a.h文件中,定义了以下内容。
// Register: PORTA
volatile unsigned char PORTA @ 0x005;
// bit and bitfield definitions
volatile bit RA0 @ ((unsigned)&PORTA*8)+0;
volatile bit RA1 @ ((unsigned)&PORTA*8)+1;
volatile bit RA2 @ ((unsigned)&PORTA*8)+2;
volatile bit RA3 @ ((unsigned)&PORTA*8)+3;
volatile bit RA4 @ ((unsigned)&PORTA*8)+4;
volatile bit RA5 @ ((unsigned)&PORTA*8)+5;
volatile bit RA6 @ ((unsigned)&PORTA*8)+6;
volatile bit RA7 @ ((unsigned)&PORTA*8)+7;
答案 0 :(得分:0)
如@HotLicks在评论中所述,您必须删除;
。
如果你写#define RED_LED RA0;
,编译器会更改RED_LED = 0;
的{{1}}
正确的方法如下:
RA0; = 0;
所以你可以按照自己的意愿使用代码。
#define RED_LED RA0
#define BLUE_LED RA1