【NXP OKdo E1双核Cortex M33开发板】-中断和按键
转自网友:Angel_YY
在学习完时钟和定时器相关知识后,GPIO的输入,中断的使用还需要进一步了解,所以本实验开始学习驱动开发板上的按键。
根据开发板的管脚图,可以看到两个用户按键分别使用了PIO1_9和PIO0_5。SW201使用了WAKEUP管脚。
在原理图上可以查看到,WAKEUP使用的是PIO1_18引脚。
在引脚配置界面搜索PIO1_9,选中后配置引脚信号为PINT0。
在引脚配置界面搜索PIO0_5,选中后配置引脚信号为PINT1。
在引脚配置界面搜索PIO1_18,选中后配置引脚信号为PINT2。
更新源代码,提示pin_mux文件会有所更改。
在SDK配置界面添加驱动,这里增加inputmux和pint驱动即可。这两个驱动就可以是的GPIO能够处理输入和中断了。
返回到代码编辑界面,在驱动列表中就可以发现增加了相关文件。在主程序文件中增加头文件,以便使用相关函数。增加三个全局变量,记录按键事件。
定义三个按键中断函数,其中前两个中断中按键值自动增加,范围0~5循环,根据值设置led灯的亮度。第三个按键用来标记一个状态,可以指示是手动控制led还是自动控制。
在main函数中初始化PINT,然后设置三个输入引脚属性,这里我们采用上升沿产生中断,中断回调函数指定为前面实现的函数。
在主循环中增加一个条件,用来控制是手动控制LED还是自动控制LED的亮度。
通过按钮,就可以手动控制LED的亮度调节了。
|