接下来我们实现一下按键的采集,按键的采集包括轮询方式和中断方式,轮询实际上是GPIO状态的采集,而中断实际上是外部中断的处理。
我们先看一下按键的原理图部分:
由上图可以看出用户按键连接的引脚是P137,同时按键采用的是上拉的方式,即按键按下的时候引脚为低电平,对于中断触发方式来说就是下降沿触发。
接下来我们就实现按键对LED1的控制,每按一下翻转一次,LED2继续实现阻塞式翻转。
硬件配置:
图形化直接选择,其他相关硬件部分都会自动配置好;
软件配置:
添加中断INTP0并配置为下降沿触发;
查看一下整个工程的代码,会发现它已经把整个外设的框架都做好了,初始化函数也自动调用了,但是外部中断并没有正式启动。调用启用中断-- R_Config_INTC_INTP0_Start ()。
然后再中断服务函数中添加控制代码:
void r_Config_INTC_intp0_interrupt(void)
{
/* Start user code for r_Config_INTC_intp0_interrupt. Do not edit comment generated here */
PIN_WRITE(2,0) = ~PIN_READ(2,0);
/* End user code. Do not edit comment generated here */
}
效果如下:
|