【问题标题】:PIC HiTech C compiler: assign name to individual port pinsPIC HiTech C 编译器:为各个端口引脚分配名称
【发布时间】:2013-08-03 11:43:10
【问题描述】:

我想为每个数字端口引脚分配单独的名称,例如,在 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;

【问题讨论】:

标签: c pic


【解决方案1】:

正如 @HotLicks 在 cmets 中所说,您必须删除 ;

如果您编写 #define RED_LED RA0;,编译器会将 RED_LED = 0; 更改为 RA0; = 0;

正确的方法如下:

#define RED_LED  RA0
#define BLUE_LED RA1

所以你可以随意使用代码。

RED_LED  = 0;
BLUE_LED = 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多