MTK使用系统timer

GM30之充电线程唤醒时间设置 1、6739平台默认使用的是GM3.0的算法,在GM30里面有2个很重要的文件mtk_charger.c和mtk_battery.c文件 mtk_charger.c ------> 和以前battery_common.c 的功能类似,主要是和充电器有关 mtk_battery.c ------> 和以前的battery_meter.c 的功能有点类似,处理和电量显示和上层交互有关 2、... 阅读详情


//首先,定义自己的Timer
typedef struct MyTimerItem
{   
    const int       index;//多个timer时使用,在这个例子里是没有用的
    int             delay;//1000相当于1秒
    unsigned char   used;//是否被使用,
    FuncPtr         timerFunc;//执行的函数

    int isCircle;//timer是否循环

}MyTimer;

/*
在文件TimerEvents.h里有一个enum,叫做MMI_TIMER_IDS,它存放了所有timer的索引,如果想要使用一个自己的timer,就要在这个enum时加上自己的一项.一般加在后面,即MAX_TIMERS的前一个.

typedef enum
{
     // Start for for Keypad based timer.
    KEY_TIMER_ID_NONE = 0,
    KEY_TIMER_ID0 = 1,
    KEY_TIMER_ID1,
    KEY_TIMER_ID2,
    KEY_TIMER_ID3,

       ......
       中间忽略无数个

 MY_TEMER_BASE_ID,
 MY_TEMER_END_ID = My_TEMER_BASE_ID + 5,

    MAX_TIMERS
} MMI_TIMER_IDS;
*/


my_timer_baseid = MY_TEMER_BASE_ID;


//函数StartTimer和StopTimer在文件Events.c里实现.


static  MyTimer mytimer = { 0, 1000, 0, MyTimerHanler, 1 };

//timer处理函数
void MyUpdateTimerHanler()
{
   MyTimer * t = &mytimer;

   //写下你要的操作
  
   // 使定时器,继续工作, MTK 的定时器执行一次就会关闭
   if(t->isCircle)
      StartTimer((UINT16)(my_timer_baseid), t->delay, t->timerFunc);
}

//开始计时
int MyUpdateTimerStart()
{
    MyTimer * t = &mytimer;

 if(!t) return 0;
    StartTimer((UINT16)(my_timer_baseid), t->delay, t->timerFunc);
    return 0;
}

//关掉timer
int UpdateTimerStop()
{
    MyTimer * t = &mytimer;
   
 if(!t) return 0;
    StopTimer((UINT16)(my_timer_baseid));
   
    return 0;
}

MTK timer 小结 1 MTK timer 有很多种,从最低层的KAL(kernel adpat layer)到MMI,都有timer的身影。 先来看一下KAL的timer KAL timer 是非常底层的timer, 它的实现是直接封装MTK的RTOS(nuleus)的timer,实现方式是由HISR,从而这种timer具有很高的优先级, 也就是说,当这个timer 超时时,就会触发一个HISR(高级中断 High Level ISR (Interrupt Service Routine)),这个中断会回 阅读详情

相关推荐

MTK task 小结 4

在 MTK task 小结 3  中写到创建一个MTK task,没有写完,今天把剩下的写完。下面需要介绍 创建task  信息的函数。 kal_bool task_test_create(comptask_handler_struct **handle) { static const comptask_handler_struct task_test_handler_info = { task_test_main, /* task entry function *

懒人 4874

camera sensor基础概念-1

TIMER_CLK:指的是PHY接口的操作频率,即摄像头传感器连接的PHY接口的时钟频率。在摄像头接口的上下文中,如 DPHY,TIMER_CLK 可能指的是物理层接口的操作频率,用于确定数据传输的速率。在您提供的文本中,描述了如何计算理想的设置时间(settleTimeNs),这是与传感器和物理层接口(PHY)的同步有关的一个参数。在微控制器或其他系统中,MCLK 作为系统主时钟,可能与 TIMER_CLK 有关联,后者可能是由 MCLK 分频得来的,用于定时器操作或特定功能的时钟控制。

arvin_xiong的博客 1135

MTK T750平台:CCCI驱动调试

MTK T750平台:CCCI驱动调试

四儿家的小祖宗的博客 5229

MTK timer 小结

MTK   timer  小结           MTK  tiemr有很多种,从最底层的KAL到MMI,都有timer的身影。 KAL 的 timer          KAL  timer是非常底层的timer,它的实现是直接封装MTK的RTOS(nuleus)的ti

xiaoweiboy的专栏 3865

从Level 1到Level 22:手把手带你用Burp Suite通关burp-labs靶场全关卡(附难点解析)

本文详细解析了如何使用Burp Suite通关burp-labs靶场的22个关卡,从基础爆破到复杂编码绕过,涵盖Intruder配置、响应过滤、POST请求处理、MD5爆破等关键技术。特别针对Level 16的三重编码和Level 20的中文响应处理等难点提供实战技巧,帮助渗透测试工程师提升Web安全实战能力。

weixin_28831461的博客 436

COMSOL解的继承

COMSOL解的继承1. 应用场景2. 实现方法2.1. 添加研究步骤2.2. 引用研究 根据参考文献整理而来,原文见: http://blog.sina.com.cn/s/blog_4a0a8b5d010126w5.html https://www.zhihu.com/question/371867999/answer/1309194094 个人学习笔记,如有疏漏,欢迎补充 1. 应用场景 在COMSOL模拟中,一次求解之后往往遇到以下几种情况需要用到解的继承: 1)瞬态求解的继续运算。例如初始设定求解1

jessica0307的博客 1万+

Android MTK 内核高精度定时器 hrtimer 的使用

hrtimer 介绍: hrtime是Linux内核提供的高精度中断定时器,其精度达到了纳秒级别,精度和主频相关,通过回调复位和设置超时,使用起来也比较方便。 参考文章链接: 链接: https://blog.youkuaiyun.com/fuyuande/article/details/82193600. MTK使用实例: 以下是MTK67656平台kernel-4.9实例,仅供参考。 注意:请勿在定时器使用过程中调用sleep(),会引起系统异常。 #include <linux/hrtimer.h>

C/C#、Android driver、STM32、Linux等等。 1010

LVGL 离线字体转换lv_font_conv本地安装

LVGL FONT CONV 离线版本

liu132641的专栏 3387

MTK:Timer定时器

https://blog.youkuaiyun.com/yanwuxufeng/article/details/5745187 https://www.cnblogs.com/archerm/articles/2039368.html

qq_34810707的博客 427

自制温湿度计——STM32-L432KC驱动lcd1602和dht11温湿度显示

先给大家甩一张图片哈(附上网址)简单说一下这块板子在这个小项目里的小缺点:一、引脚有点少,lcd1602本来有两种传输数据方式,一种是4bit,另一种是8bit,但是这块板子对于这个项目来说引脚有点少,所以建议用4bit模式。然而,在网上是很难找到设置4bit传输模式的lcd1602的,这也是为什么我写这个blog。二、mbed-os有时候会有大大小小的问题,搞人心态是真的。比如库函数离奇失踪,从官网上下载库函数失败,重装也解决不了然后莫名其妙好了。

m0_72994251的博客 3913

宇树机器人G1二次开发:语音对话、打断与激活功能实现指南

宇树机器人G1是一款功能强大的四足机器人,其开放的SDK和API为开发者提供了广阔的二次开发空间。其中,语音交互是提升机器人智能化水平和用户体验的关键功能。本文将详细介绍如何在宇树机器人G1上进行二次开发,实现。语音打断允许用户在机器人说话时随时中断并输入新指令,这是提升交互自然度的关键功能。三大核心功能,帮助你构建更自然、更智能的人机交互系统。语音识别是将用户的语音输入转换为文本的过程。识别文本后,需要理解用户意图并生成回复。将文本回复转换为语音输出。

m0_52645558的博客 664

MTK定时器使用

<br />  本帖来自一篇博客,部分内容被修改!<br />   定时器事件是在指定的时间或时间间隔内反复触发指定的事件,这个指定的事件是通过一个注册的功能函数来实现的。在MTK平台中,操作定时器的具体流程如下:<br />   ① 在定义定时器ID的头文件TimerEvents.h中的MMI_TIMER_IDS枚举类型中定义一个自己的TimerID,实验中定义的ID为MY_TIMER_ID。当然,要在MAX_TIMERS之前定义。<br />② 使用函数StartTimer(U16 TimerID,U1

liuqg的专栏 4082

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 908

Mtk.Timer

待续...

Dr.Abel的专栏 491

PCL RANSAC拟合空间圆【2026最新版】

RANSAC三维点云空间3D圆拟合。博客长期更新,本文最新更新时间为:2026年4月13日。代码在PCL1.15.0中测试通过

点云侠的博客 7455

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)linux驱动由浅入深系列:块设备驱动之二(块设备驱动结构分析)块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了操作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。 按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间...

Radia的专栏 1万+

mtk led 呼吸灯

LED调用流程 g_leds_data[i]->cdev.blink_set = mt65xx_blink_set; //mt65xx_leds_probe -- leds_drv.c mt65xx_blink_set//leds_drv.c mt_mt65xx_blink_set mt_led_blink_pmic //leds external_ic_leds_mod

shellshell13的专栏 1814

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MTK task 小结 1

MTK 的 基本执行单元是task,从操作系统的角度来理解,task 有些像线程而不是进程,进程之间的地址空间是相互隔离的,说白点就是进程之间的全局变量是不相互干扰的,而线程之间则是用同一个地址空间,MTK 的task 之间的地址空间也是共同的,也就是在MTK 编程里,定义了一个全局变量,那么在任何一个task里面都能引用,(这里举个例子,在实际编程过程中最好不要用全局变量,实在没有办法避开,那么

bravoon的专栏 580

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MTK timer 小结 3

在 MTK timer 小结 2 说道最常用的MMI timer 实现机制的初始化过程。今天继续忘下说,下面要说的是创建一个timer。MMI 层,启动一个timer,最终都会调用到 L4StartTimer 这个函数。具体来分析一下这个函数 // 参数 nTimerId 是要自己定义一个timer id,在 timerEvents.h 里的 MMI_TIMER_IDS 定义,用来区分timer // TimerExpiry 超时的回调函数 // funcArg 回调函数回传的参数 // nTim

懒人 5269

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MTK timer 小结 2

在 MTK timer 小结 1 提到了两种timer,KAL timer 和 stack timer, 这两种timer 在平时用的比较少,在驱动开发,或者时间要求特别精确的情况下,使用 KAL timer, 一般在task要管理一组timer,用 stack timer 加上 event scheduler,后者就是今天要介绍的第三种timer。 event scheduler 处理的timer 时间精确性上来说,相对不是那么精确,对于上层app应用来说,是必不可少的。MMI 层的tim

懒人 5858

MTK timer 小结 4

昨天说到回调函数 L4CallBackTimer。 static void L4CallBackTimer(void *p) { // 在evshed_set_event 第三个参数中传得 timer noder // 这里转换这个指针 mmi_frm_timer_type *pTimer = (mmi_frm_timer_type *)p; // 得到timer id U32 nTimerId = pTimer->timer_info & (~N

懒人 3636

MTK timer

MTK timer有很多种,从最低层的KAL(kernel adpat layer)到MMI,都有timer的身影。 第一种timer即KAL timer,KAL timer是非常底层的timer,它的实现是直接封装MTK的RTOS(nuleus)的timer,实现方式是由HISR,从而这种timer具有很高的优先级,也就是说,当这个timer超时时,就会触发一个HISR(高级中断 High L

折翼飞翔 2327

MTK Timer

1. GPTI_StartItem 要精准很多,但是只能提供总数不超过32个GPTI,所以使用时需要注意成对申请和释放GPTI,否则可能会出现ASSERT.GPTI用的是GPT timer。这个是用HISR的方式去响应. 2. StartTime S

Sheldon4090's Blog 779
上一篇: 如何安排事务
下一篇: 转 MTK编译过程
吴遥
博客等级 码龄19年 90粉丝 93原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值