[文章]龙芯OpenHarmony课程 【4】 按键中断

阅读量0
0
4
1 按键中断线程按键中断相关代码位于deviceloongsonls1c300b_hrsttestsample_key_irq.c文件中。
首先create_key_irq_task 创建一个线程,该线程为 key_irq_task 。

2 按键中断线程key_irq_task 中断线程代码如下,基本都有注释后面我们重点看下中断设置部分的代码。

按键中断处理函数

3 龙芯1c300中断龙芯1c的中断分为五组,每组32个,相关中断号可以在
deviceloongsonls1c300b_hrstsrclibls1c_irq.h 文件中查看,所有中断号如下:


其中,GPIO的中断是从 64开始的

也就是说,如果我们的GPIO口是10,那么对应的中断号是 64+10 ,所以需要使用 LS1C_GPIO_TO_IRQ 函数将GPIO口号转换成中断号,相关宏如下:

4 OpenHarmony中断APIOpenHarmony提供统一的中断管理,开发者可以调用 HalHwiCreate 函数进行中断使能,该函数原型如下:
  1. LITE_OS_SEC_TEXT_INIT UINT32 HalHwiCreate(HWI_HANDLE_T hwiNum,
  2.                                           HWI_PRIOR_T hwiPrio,
  3.                                           HWI_MODE_T mode,
  4.                                           HWI_PROC_FUNC handler,
  5.                                           HWI_ARG_T arg)
  6.   描述:创建硬件中断
  7.   参数:                hwiNum --- 要创建的 hwi num
  8.                 hwiPrio --- hwi 的优先级,目前1c300未使用,直接填0即可
  9.                 mode --- 未使用
  10.                 handler --- hwi 处理程序
  11.                 arg --- hwi 处理程序的参数
  12.   返回:成功时为 LOS_OK,失败时为错误代码
复制代码



回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友