【宝马 NXP LPC1768
试用体验】宏定义与GPIO
操作在申请这块板子的时候就是玩一个寄存器的操作,而高级的方式去玩就要利用C
语言的宏定义来实现了。这次介绍两个宏定义
#define SET_BIT(REG, BIT) (REG |= (0x01 << BIT))
#define CLEAR_REG(REG) (REG = 0)
第一个宏定义是对指定的寄存器位置位,第二个宏定义则是将寄存器清零处理。下面我们使用实例来验证这两个C
语言里高级使用。
int main (void)
{
uint8_t a;
LED_config();
while(1)
{
for(a=0;a<8;a++)
{
CLEAR_REG(LPC_GPIO2->FIOPIN);
SET_BIT(LPC_GPIO2->FIOPIN, a);
Delay(300);
}
}
}
这样,我们依然可以看到跑马灯的效果了。大家可以试试如何设计一个对寄存器指定位清零处理的宏定义?
【宝马 NXP LPC1768
试用体验】宏定义与GPIO
操作在申请这块板子的时候就是玩一个寄存器的操作,而高级的方式去玩就要利用C
语言的宏定义来实现了。这次介绍两个宏定义
#define SET_BIT(REG, BIT) (REG |= (0x01 << BIT))
#define CLEAR_REG(REG) (REG = 0)
第一个宏定义是对指定的寄存器位置位,第二个宏定义则是将寄存器清零处理。下面我们使用实例来验证这两个C
语言里高级使用。
int main (void)
{
uint8_t a;
LED_config();
while(1)
{
for(a=0;a<8;a++)
{
CLEAR_REG(LPC_GPIO2->FIOPIN);
SET_BIT(LPC_GPIO2->FIOPIN, a);
Delay(300);
}
}
}
这样,我们依然可以看到跑马灯的效果了。大家可以试试如何设计一个对寄存器指定位清零处理的宏定义?