930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 18375|回复: 1

软件定时器宏APP_TIMER_TICKS的原理

[复制链接]

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2020-12-15 14:07:50 | 显示全部楼层 |阅读模式
看代码一般类似这样
app_timer_start(m_HR_timer_id, APP_TIMER_TICKS(1000), NULL);

关注 APP_TIMER_TICKS(1000)

#ifndef FREERTOS
#define APP_TIMER_TICKS(MS)                                \
            ((uint32_t)ROUNDED_DIV(                        \
            (MS) * (uint64_t)APP_TIMER_CLOCK_FREQ,         \
            1000 * (APP_TIMER_CONFIG_RTC_FREQUENCY + 1)))



把数据带进去
#define APP_TIMER_CLOCK_FREQ            32768
#define APP_TIMER_CONFIG_RTC_FREQUENCY 0


也即是  APP_TIMER_TICKS(1000) = (32768+1000/2) / 1000

这个参数 是怎么完成定时1000ms=1s一次回调的呢?【是这个参数不理解】
回复

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2020-12-15 15:33:36 | 显示全部楼层
APP_TIMER_TICKS(1000)这个宏是将1000ms转换为RTC的ticks,由RTC完成定时的。
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2024-11-21 22:44 , Processed in 0.672951 second(s), 22 queries .

快速回复 返回顶部 返回列表