MTK中断控制器简单记录
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中断控制器简单记录相关推荐
- 扩展中断控制器8259实验_PCIe的中断机制
出于向下兼容的需要,PCIe完全继承了PCI的所有的中断特性(包括INTx,MSI/MSIx).但是与PCI不同的是,PCIe使用串行总线尽量减少pin的使用,所以对于INTX类型的中断,它没有使用s ...
- 可编程中断控制器8259A
可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片. 它将中断源优先级判优.中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片 ...
- 操作系统-ucore-lab1 Bootloader启动操作系统 A20 GDT全局描述符 使能和进入保护模式 ELF格式os 8259A中断控制器 8253定时器 函数调用堆栈跟踪函数
操作系统-ucore-lab1 本文详细地址 实验一:系统软件启动过程 参考 重要文件 调用顺序 1. boot/bootasm.S | bootasm.asm(修改了名字,以便于彩色显示)a. 开启 ...
- 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...
<嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...
- 扩展中断控制器8259实验_「正点原子FPGA连载」第十三章双核AMP实验
1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...
- 中断触发流程三(中断控制器)
这一篇主要说说中断控制器,及GPIO中断触发与中断号的识别,为什么GPIO引脚的触发最后调用特定的中断例程,这中间是怎么联系起来的.现在知道的是request_irq只是在特定的中断号 链表中注册了一 ...
- Linux中断子系统(二)中断控制器GIC驱动分析
Linux中断子系统(二)中断控制器GIC驱动分析 备注: 1. Kernel版本:5.4 2. 使用工具:Source Insight 4.0 3. 参考博客: Linux中断子系统(一 ...
- 扒开ARM中断控制器的底裤来看看!
GIC 硬件原理 GIC,Generic Interrupt Controller.是ARM公司提供的一个通用的中断控制器.主要作用为:接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理. ...
- 剖析ARM中断控制器与GIC中断控制器
目录 简介:GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4( ...
最新文章
- CSS教程:div垂直居中的N种方法
- Python学到什么程度才可以去找工作?
- C++回调函数是什么?
- PHP的max_execution_time
- python的集成开发环境搭建_Window版本 - Python数据分析集成开发环境 Anaconda安装(超详细)...
- 用线性代数理解 Normal Equation
- 比特币的密钥、地址、钱包
- 微电子电路——一位全加器
- 第四届“泰迪杯”数据分析技能赛通知
- 谷歌浏览器如何免费复制百度文库,解决禁止复制,禁止使用右键等
- OpenGL第八版--初识OpenG
- Javamail配置阿里云邮箱发送邮件
- 服务器如何设置内网IP地址
- matlab里的subs,急询:Matlab中 subs(S)的应用疑问?
- Intel CPU性能linpack测试
- 我卖掉北京500万的房产,在老家生活的这两年……
- python个人博客搭建_Django后台 + Wordpress主题快速搭建个人博客
- c语言双向循环链表存储长整型,湖南工程学院15级C语言课程设计报告.doc
- 小米mix2android o升级,小米MIX2升级Android 8.0 全面屏手势操作将一同推送
- php模板如何使用,PHP自定义模板标签详细解答,让你轻松驾驭