硬汉嵌入式论坛

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

[其它] FreeRTOS使用其它定时器(非SysTick滴答定时器)作为系统时钟节拍的问题

[复制链接]

9

主题

68

回帖

95

积分

初级会员

积分
95
发表于 2017-10-10 16:52:59 | 显示全部楼层 |阅读模式
如题,看官网介绍说自己设定
1.设置定时器中断定义一个功能来配置定时器以产生周期性中断。该函数必须具有以下名称和原型:
void vPortSetupTimerInterrupt(void);中断的频率必须等于configTICK_RATE_HZ(在FreeRTOSConfig.h中定义)的值。


2.设定中断回调函数在vPortSetupTimerInterrupt()函数体内设定xPortSysTickHandler() 为中断回调函数


3.确保CMSIS名称未被使用,这步不用,因为我没重命名。


4.使用:
在main的一开始,我设定默认中断服务函数为freertos(vPortSVCHandler,xPortPendSVHandler),最后一个 xPortSysTickHandler 我创建了一个vPortSetupTimerInterrupt()
函数,我用看门狗计数器做心跳,频率设定的和configTICK_RATE_HZ一样,然后设定回调函数为xPortSysTickHandler()
烧录进去,就不正常了 ,调度器好像没跑起来,但是xPortSysTickHandler还是按照设定1ms的周期调用着,问下版主知道这是啥情况不 ?



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106769
QQ
发表于 2017-10-11 00:27:40 | 显示全部楼层
你用的不是CM内核么,看你的说明里面还有SVC中断和PendSV中断,继续使用滴答定时器就好了,如果你要是用的HAL库,那个CubeMX里面的意思是让HAL库使用其它定时器,并不是让FreeRTOS使用其它定时器。


附上FreeRTOS使用其它定时器说明:
http://www.freertos.org/low-powe ... hanging_tick_source

QQ截图20171011001957.png
回复

使用道具 举报

9

主题

68

回帖

95

积分

初级会员

积分
95
 楼主| 发表于 2017-10-11 11:29:09 | 显示全部楼层

回 eric2013 的帖子

eric2013:你用的不是CM内核么,看你的说明里面还有SVC中断和PendSV中断,继续使用滴答定时器就好了,如果你要是用的HAL库,那个CubeMX里面的意思是让HAL库使用其它定时器,并不是让FreeRTOS使用其它定时器。


附上FreeRTOS使用其它定时器说明:
http://www.freertos.org/low-power-ARM-c .. (2017-10-11 00:27) 
这上面说的是,怎么使用滴答以外的定时器作为tick中断,作为系统节拍吧,并不是说用做定时器 !
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106769
QQ
发表于 2017-10-11 11:37:22 | 显示全部楼层

回 lewis 的帖子

lewis:这上面说的是,怎么使用滴答以外的定时器作为tick中断,作为系统节拍吧,并不是说用做定时器 !
(2017-10-11 11:29)


附上FreeRTOS使用其它定时器说明: -------->意思是FreeRTOS系统时钟节拍使用其他定时器。
回复

使用道具 举报

9

主题

68

回帖

95

积分

初级会员

积分
95
 楼主| 发表于 2017-10-14 15:11:27 | 显示全部楼层

回 eric2013 的帖子

eric2013:附上FreeRTOS使用其它定时器说明: -------->意思是FreeRTOS系统时钟节拍使用其他定时器。

....... (2017-10-11 11:37) 
哥  。我没理解错吧 !就是把其他的定时器,作为系统节拍,意思就是把滴答不要了,用别的定时器来,没错吧 !
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106769
QQ
发表于 2017-10-14 15:37:14 | 显示全部楼层

回 lewis 的帖子

lewis:哥  。我没理解错吧 !就是把其他的定时器,作为系统节拍,意思就是把滴答不要了,用别的定时器来,没错吧 ! (2017-10-14 15:11)

我二楼是回复了两个问题。
1. 第1个,如果你用的是CubeMX,他是让你HAL库用其它定时器。
2. 第2个,这里的附录就是你楼主位的翻译,我这里是方便其他网友看这个问题。特次做了一个附录。
3. 我说:“附上FreeRTOS使用其它定时器说明” ,我的意思就是用其他定时器做系统时钟节拍的含义了。

我这里解释一下是否明白了我说的用意了,此贴就聊这么多吧。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 10:06 , Processed in 0.313494 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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