您的位置 首页 数字

STM8S的定时器周期中止时钟测验体系

STM8S的定时器周期中断时钟测试系统-因为STM8S默认使用内部16M高速RC振荡器,且8分频,则系统启动主时钟为2M。即CLK_CKDIVR = 0X18;,如果再去赋值CLK_CKDIVR |= 0X08; 则主时钟还是不变即0X18,但是如果赋值为CLK_CKDIVR = 0X08;,则主时钟就会改变,变为8M。

  1 问题

    鄙人面的测验程序中,假如将Init_CLK()函数中的 CLK_CKDIVR |= 0x08;去掉’|‘,则TIM1的功用完成跟预设定相同(10ms中止一次),可是TIM2的PWM频率就变高了;假如加上,则TIM2的功用完成跟预设定相同(发生1Hz的PWM),可是TIM1的周期就变长了;

    测验了许多测验,均无效(买的开发板和另一块gs自画板测验也都相同)。

  2 测验

    由于STM8S默许运用内部16M高速RC振荡器,且8分频,则体系启动主时钟为2M。即CLK_CKDIVR = 0X18;,假如再去赋值CLK_CKDIVR |= 0X08; 则主时钟仍是不变即0X18,可是假如赋值为CLK_CKDIVR = 0X08;,则主时钟就会改动,变为8M。可是TIM1和TIM2的Fmaster时钟应该是相同的,这样的赋值应该会对TIM1和TIM2都会发生影响,可是两个赋值不同,完成功用的装备正确,而总只要一个能按预设定作业,这到底是怎样回事呢?

    发现设置为CLK_CKDIVR = 0X08时(8M),TIM1能按预设定作业,而TIM2的作业频率却显着快了,像是快了一倍,带着这个发现,我就将现在的TIM2的Fmaster时钟频率当做为TIM1的一倍,即16M,再去重新装备TIM2的寄存器,再编译、下载进单片机,竟然和TIM1完成的功用相同了。这又到底是怎样回事呢?莫非TIM2的Fmaster时钟总是TIM1的Fmaster时钟的一倍吗?又去测验几种不同的CLK_CKDIVR(当然则TIM1的Fmaster频率不能超过8M)。

    接下来测验了 CLK_CKDIVR = 0X10;(4M), CLK_CKDIVR = 0X18;(2M)均是如此。是不是猜测正确了,仍是想不明白是怎样回事。看着STM8S的时钟树怎样也想不明白。

  3 测验程序
STM8S的定时器周期中止时钟测验体系
STM8S的定时器周期中止时钟测验体系
STM8S的定时器周期中止时钟测验体系

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/348150.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部