原创 Microchip C30中IO端口使用技巧

2010-10-1 18:37 2572 10 9 分类: MCU/ 嵌入式

在C30中,对一个IO口进行设置和操作时,通常需要使用3个寄存器,例如_RB1、_LATB1、_TRISB1,分别代表读取端口电平、设置端口电平、设置端口方向。这样对于1个IO就需要进行3个定义,维护起来比较麻烦。如果我们使用下面的宏定义方式,就只需要一个定义即可,代码维护就变得简单多了。



#define REG2(A, B) A ## B


#define INPIN(PIN)   REG2(_R, PIN)
#define
OUTPIN(PIN)  REG2(_LAT, PIN)
#define TRISPIN(PIN) REG2(_TRIS, PIN)



#define INPUT  1
#define OUTPUT 0



#define LED1 B8


#define LED1_on()  OUTPIN(LED1) = 0
#define
LED1_off() OUTPIN(LED1) = 1
#define LED1_rev() OUTPIN(LED1) = !OUTPIN(LED1)



使用时,可以用下面方式使用:


TRISPIN(LED1) = OUTPUT;
LED1_on();



如果以后改变了端口,也只需要修改LED1这一个宏定义。



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /1 下一条