|
【HiSpark Wi-Fi IoT 智能家居套件试用】KEY采用中断信号量触发LED控制,
本帖最后由 jeFFC_good 于 2021-1-3 15:01 编辑
板子上User按键是GPIO5, LED是GPIO9.
2.png (2.41 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传
1.png (15 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传
我们本次需要实现的是,按键按下,中断触发一个信号量,然后控制LED的亮灭。中断触发和信号量触发的方式可以避免轮询的查询key的GPIO的状态和LED预期的状态。可以节省很多的CPU资源,比较的实用。
在./application/sample/wifi-iot/app/下面创建文件夹key2led,并在该文件夹下创建key2led.c和BUILD.gn两个文件。Key2led的BUILD.gn中包括了:
6.png (19.45 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传
并且把key2led的构建library添加到app这一层的BUILD.gn中:
5.png (15.42 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传
我们再看代码,先配置GPIO,GPIO9配置为输出,GPIO5配置为输入,且需要打开中断,上升沿有效,中断处理函数释放信号量。配置完GPIO,创建一个semphare,用于中断和Task之间的同步。之后创建一个LED控制的任务。用于等待信号量的同步。
3.png (42.71 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传
4.png (93.72 KB, 下载次数: 0)
下载附件 保存到相册
4 小时前 上传 |
|