硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2675|回复: 7
收起左侧

[FreeRTOS] FreeRTOS 软件定时器周期设置超过2小时,会提前进入定时器回调函数

[复制链接]

2

主题

10

回帖

16

积分

新手上路

积分
16
发表于 2019-6-11 10:28:09 | 显示全部楼层 |阅读模式
我通过官网下载的10.2.1和10.0.1版本移植在f405板子上。软件定时器设置周期为4小时,结果30分钟左右就进入定时器回调函数了。设置为1小时则时间准确。
有遇到相同的问题的么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-6-11 11:12:46 | 显示全部楼层
可以这样检测下,没秒进去1次,累计30分钟的时候,看看是否有异常
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-6-11 11:19:39 | 显示全部楼层
好的,谢谢指点,我检测下。
我之前用过每分钟进去一次,大约也测了30分钟。没有问题。而且1小时多一点的时间内,都是准确的。超过1个半小时左右,就不准了。
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-6-11 15:43:04 | 显示全部楼层
eric2013 发表于 2019-6-11 11:12
可以这样检测下,没秒进去1次,累计30分钟的时候,看看是否有异常

1秒进一次,累积了30分钟了,没有问题。时间也是准的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-6-12 00:14:35 | 显示全部楼层
google 发表于 2019-6-11 15:43
1秒进一次,累积了30分钟了,没有问题。时间也是准的

那就这种应用方式吧,还靠谱点。
回复

使用道具 举报

2

主题

10

回帖

16

积分

新手上路

积分
16
 楼主| 发表于 2019-6-12 13:24:19 | 显示全部楼层
eric2013 发表于 2019-6-12 00:14
那就这种应用方式吧,还靠谱点。

感谢,问题找到了:/* Converts a time in milliseconds to a time in ticks.  This macro can be
overridden by a macro of the same name defined in FreeRTOSConfig.h in case the
definition here is not suitable for your application. */
#ifndef pdMS_TO_TICKS
        #define pdMS_TO_TICKS( xTimeInMs ) ( ( TickType_t ) ( ( ( TickType_t ) ( xTimeInMs ) * ( TickType_t ) configTICK_RATE_HZ ) / ( TickType_t ) 1000 ) )
#endif

这里溢出了。
https://sourceforge.net/p/freertos/bugs/135/
https://www.freertos.org/FreeRTO ... tion_317c7160j.html

回复

使用道具 举报

1

主题

25

回帖

28

积分

新手上路

积分
28
发表于 2019-6-13 15:17:40 | 显示全部楼层
google 发表于 2019-6-12 13:24
感谢,问题找到了:/* Converts a time in milliseconds to a time in ticks.  This macro can be
overr ...

长知识了。不过冒昧的问一句,定时这么长时间,是做什么应用的呢?
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2019-6-14 08:48:27 | 显示全部楼层
google 发表于 2019-6-12 13:24
感谢,问题找到了:/* Converts a time in milliseconds to a time in ticks.  This macro can be
overr ...

看来FreeRTOS应该设计成几个版本,16bit~64bit就好了。使用宏定义来搞
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 21:21 , Processed in 0.252525 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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