OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5062|回复: 6

FreeTROS的滴答定时器

[复制链接]

2

主题

6

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-3-4
在线时间
3 小时
发表于 2018-3-4 22:15:49 | 显示全部楼层 |阅读模式
[mw_shl_code=c,true]/**
  * @brief  Configures the SysTick clock source.
  * @param  SysTick_CLKSource: specifies the SysTick clock source.
  *   This parameter can be one of the following values:
  *     @arg SysTick_CLKSource_HCLK_Div8: AHB clock divided 3yòÔ by 8 selectedèëÑ¡ as SysTick clock source.à′Ô′
  *     @arg SysTick_CLKSource_HCLK: AHB clock selected as SysTick clock source.
  * @retval None
  */
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
{
  /* Check the parameters */
  assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
  if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
  {
    SysTick->CTRL |= SysTick_CLKSource_HCLK;
  }
  else
  {
    SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
  }
}[/mw_shl_code]

从注释和源代码上分析,FreeRTOS的抵达定时器时钟可以设置成 HCLK 或者 HCLK/8   为什么还把原来的HCLK/8 改成了HCLK ???   是哪里我没有考虑到?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-5 09:48:11 | 显示全部楼层
因为FreeRTOS内部使用的是HCLK的!
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-3-4
在线时间
3 小时
 楼主| 发表于 2018-3-5 22:22:54 | 显示全部楼层
zuozhongkai 发表于 2018-3-5 09:48
因为FreeRTOS内部使用的是HCLK的!

使用哪个时钟不是自己设定的吗?   你说的内部使用HCLK 从哪里体现出来的?是FreeTROS强行规定的吗?
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-3-6 09:52:31 | 显示全部楼层
蚂蚁啃骨头 发表于 2018-3-5 22:22
使用哪个时钟不是自己设定的吗?   你说的内部使用HCLK 从哪里体现出来的?是FreeTROS强行规定的吗?

看FreeRTOS源码,FreeRTOS也会自己初始化systick,初始化的时候就是HCLK。
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

22

主题

203

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
金钱
378
注册时间
2017-11-29
在线时间
135 小时
发表于 2018-3-23 23:04:50 来自手机 | 显示全部楼层
FreeRtos在哪里初始化systick?
回复 支持 反对

使用道具 举报

23

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2305
金钱
2305
注册时间
2017-7-6
在线时间
280 小时
发表于 2018-3-26 17:00:29 | 显示全部楼层
zuozhongkai 发表于 2018-3-6 09:52
看FreeRTOS源码,FreeRTOS也会自己初始化systick,初始化的时候就是HCLK。

额,原子例程在进入FreeRTOS之前,就用delay_init(180)来初始化滴答定时器,我如果用1/8HCLK,那不是相应的把180改为180/8就可以啦(但它由于不是整数,所以感觉还是用HCLK比较方便),除此之外还有其他别的原因吗 ?
回复 支持 反对

使用道具 举报

22

主题

203

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
金钱
378
注册时间
2017-11-29
在线时间
135 小时
发表于 2018-3-29 13:41:48 | 显示全部楼层
蚂蚁啃骨头 发表于 2018-3-5 22:22
使用哪个时钟不是自己设定的吗?   你说的内部使用HCLK 从哪里体现出来的?是FreeTROS强行规定的吗?

c.PNG 看”第29.1讲 FreeRTOS任务调度器开启(上)”里面讲到了任务调度器开启的过程中,配置系统滴答定时器的时候选择了内核时钟做为时钟源,并且使用        (SystemCoreClock)    做为时基,对F103 就是72M。现在明白为什么左工让看RTOS源码里用的就是系统HLK而不是HLK/8!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-31 21:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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