微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR位操作记录

AVR位操作记录

时间:11-22 来源:互联网 点击:
说实话,偶是头一次遇到这么用的,Mark。

#defineBIT(x) (1<(x))

#defineGET_PORT(x,bit) (PORT##x)

#defineGET_PIN(x,bit) (PIN##x)

#define GET_BIT(x,bit) (bit)

#definePORT_OUT0(portx_bit) (GET_PORT(portx_bit)&=~BIT(GET_BIT(portx_bit)))

#definePORT_OUT1(portx_bit) (GET_PORT(portx_bit)|=BIT(GET_BIT(portx_bit)))

#definePORT_IN(portx_bit) (GET_PIN(portx_bit)&BIT(GET_BIT(portx_bit)))

===================================
我自己写的,定义好这个后,只要再定义端口就好了,
比如
#defineKEY1 A,2
#defineLED_RED A,3

if(PORT_IN(KEY1))
{
PORT_OUT1(LED_RED);
}

ICCAVR编译出的代码已经是位操作了...读起来也很直观

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top