×
单片机 > 单片机程序设计 > 详情

AVR位操作记录

发布时间:2020-08-31 发布时间:
|
说实话,偶是头一次遇到这么用的,Mark。

 

#define BIT(x) (1 <


#define GET_PORT(x, bit) (PORT ## x) 

#define GET_PIN( x, bit) (PIN ## x)

 

 #define GET_BIT(x,bit) (bit)

#define PORT_OUT0(portx_bit) ( GET_PORT(portx_bit) &= ~BIT(GET_BIT(portx_bit)) ) 

#define PORT_OUT1(portx_bit) ( GET_PORT(portx_bit) |=  BIT(GET_BIT(portx_bit)) ) 

#define PORT_IN(portx_bit) ( GET_PIN(portx_bit) & BIT(GET_BIT(portx_bit)) )

 

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

if( PORT_IN(KEY1) ) 

PORT_OUT1(LED_RED); 


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


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会