void ModulePwronCheck(void)
{
#ifdef TELIT
    GPIO_WriteIO(0, MODULE_PWR_GPIO_ID);
    ModuleRingInit();           //电话短信中断初始化
#if defined(__TELIT_LE910_SUPPORT__)    
    ModulePowerOnDetInit();     //用于诊断模块是否掉电的中断初始化
#endif    
    //ModuleCTSInit();
    L1SM_SleepDisable(mc_sleep_handle);

if(IsModulePwron())
    {   
        tr_debug("ModulePwron OK!");
#if defined(__TRACKER_PTCRB__) && defined(__PA30_SUPPORT__)
        Module_VbusSwitch(KAL_TRUE);
#endif
   }
    else
        tr_debug("ModulePwron FAIL!");
#endif
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
在中断初始化函数中注册中断
void ModuleRingInit(void)
{
      GPIO_ModeSetup(EXT_MODULE_RING_GPIO_ID, 0);   //工作模式设置为GPIO
      GPIO_InitIO(0, EXT_MODULE_RING_GPIO_ID);      //初始化GPIO的工作方向 0 输入
      module_ring_state = GPIO_ReadIO(EXT_MODULE_RING_GPIO_ID); //读取GPIO脚状态

EINT_SW_Debounce_Modify(EXT_MODULE_RING_EINT_ID, 10);  //软件去抖(防止电平变化过程中有抖动)
      tr_debug("module_ring_init %d\r\n",module_ring_state);
      EINT_Set_HW_Debounce(EXT_MODULE_RING_EINT_ID, 10);     //硬件去抖   
      EINT_Registration(EXT_MODULE_RING_EINT_ID,KAL_TRUE, !module_ring_state, ModuleRingHisr, KAL_TRUE);    //注册中断

GPIO_ModeSetup(EXT_MODULE_RING_GPIO_ID, EXT_MODULE_RING_GPIO_MODE);   //工作模式设置为中断
}
1
2
3
4
5
6
7
8
9
10
11
12
13
中断响应函数
//中断响应函数
void ModuleRingHisr(void)
{
    ilm_struct *  ring_ilm;
        
    module_ring_state = GPIO_ReadIO(EXT_MODULE_RING_GPIO_ID);        
    tr_debug(" module ring_HISR %d\r\n",module_ring_state);

if(!module_ring_state)
    {
        #if defined(__L200_SUPPORT__)
            if(GetTelitCallStatus() != TELIT_CALL_STATUS_CONNECTED)
            {
                ModuleCodecOn(2);    
                AW8736SettingModeOneOrClose(KAL_FALSE);
            }
        #endif
        
        tr_debug(" module ring_HISR -SleepDisable");
        L1SM_SleepDisable(mc_sleep_handle);         //
            
        ModuleSlpModeSetting(KAL_FALSE);
        ModuleStartEnterSleepTimer(20);
    }
    else
    {
        tr_debug(" module ring_HISR -SleepEnable");
        //L1SM_SleepEnable(mc_sleep_handle);        //睡眠使能
    }
    EINT_Set_Polarity(EXT_MODULE_RING_EINT_ID, !module_ring_state);            //设置中断方式(反向设置中断触发方式)

}
--------------------- 
作者:半个月儿上来 
来源:CSDN 
原文:https://blog.csdn.net/qq_17017545/article/details/83026482 
版权声明:本文为博主原创文章,转载请附上博文链接!

MTK中断控制器简单记录相关推荐

  1. 扩展中断控制器8259实验_PCIe的中断机制

    出于向下兼容的需要,PCIe完全继承了PCI的所有的中断特性(包括INTx,MSI/MSIx).但是与PCI不同的是,PCIe使用串行总线尽量减少pin的使用,所以对于INTX类型的中断,它没有使用s ...

  2. 可编程中断控制器8259A

    可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片. 它将中断源优先级判优.中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片 ...

  3. 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数

    操作系统-ucore-lab1 本文详细地址 实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启 ...

  4. 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...

    <嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...

  5. 扩展中断控制器8259实验_「正点原子FPGA连载」第十三章双核AMP实验

    1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...

  6. 中断触发流程三(中断控制器)

    这一篇主要说说中断控制器,及GPIO中断触发与中断号的识别,为什么GPIO引脚的触发最后调用特定的中断例程,这中间是怎么联系起来的.现在知道的是request_irq只是在特定的中断号 链表中注册了一 ...

  7. Linux中断子系统(二)中断控制器GIC驱动分析

    Linux中断子系统(二)中断控制器GIC驱动分析 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux中断子系统(一 ...

  8. 扒开ARM中断控制器的底裤来看看!

    GIC 硬件原理 GIC,Generic Interrupt Controller.是ARM公司提供的一个通用的中断控制器.主要作用为:接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理. ...

  9. 剖析ARM中断控制器与GIC中断控制器

    目录 简介:GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4( ...

最新文章

  1. CSS教程:div垂直居中的N种方法
  2. Python学到什么程度才可以去找工作?
  3. C++回调函数是什么?
  4. PHP的max_execution_time
  5. python的集成开发环境搭建_Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细)...
  6. 用线性代数理解 Normal Equation
  7. 比特币的密钥、地址、钱包
  8. 微电子电路——一位全加器
  9. 第四届“泰迪杯”数据分析技能赛通知
  10. 谷歌浏览器如何免费复制百度文库,解决禁止复制,禁止使用右键等
  11. OpenGL第八版--初识OpenG
  12. Javamail配置阿里云邮箱发送邮件
  13. 服务器如何设置内网IP地址
  14. matlab里的subs,急询:Matlab中 subs(S)的应用疑问?
  15. Intel CPU性能linpack测试
  16. 我卖掉北京500万的房产,在老家生活的这两年……
  17. python个人博客搭建_Django后台 + Wordpress主题快速搭建个人博客
  18. c语言双向循环链表存储长整型,湖南工程学院15级C语言课程设计报告.doc
  19. 小米mix2android o升级,小米MIX2升级Android 8.0 全面屏手势操作将一同推送
  20. php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭

热门文章

  1. Qt基于model/view数据库编程3
  2. 使用Timer的schedule()方法
  3. 安装版本swf文件转换其他视频格式工具(例:swf to mp4) ,转换后的视频无水印...
  4. NYOJ469(动态规划)
  5. Zabbix 源码解析之监控项数据采集流程
  6. Hadoop2.8集群安装详细教程
  7. Excel 常用快捷键总结(Alt系列)
  8. Linux下browser-sync无法启动Chrome的解决方法
  9. 浏览器的同源策略与跨域问题的解决方案
  10. 为什么用自己的电脑部署服务器之后外网访问不到呢?并且该如何解决这个问题呢?