新闻  |   论坛  |   博客  |   在线研讨会
Microchip C30中IO端口使用技巧
luker | 2014-11-27 22:13:18    阅读:1303   发布文章

在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这一个宏定义。


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

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