[求助] 求教一个新手问题,关于定时器

c2z3a5r7   2017-12-9 12:48 楼主
刚接触MCU,在用stm32f103zet6做开发,求教一个新手问题,如果我使用一个通用定时器做次线程,最长单次执行时间只有20微秒,其余全是main函数里的主线程在跑,如果我给这个定时器预分频12mhz,那是不是意味这个定时器执行的时候是在12mhz频率下执行,而轮到主线程执行的时候依然是在72mhz下执行?还是在60mhz频率执行?

回复评论 (6)

定时器预分频仅对计数器操作(加或者是减计数)起作用,对程序执行不起作用。
点赞  2017-12-9 16:12
你分频到12MHz,你这个定时器的执行周期就是计数值/12m。程序执行速度还是72MHZ
点赞  2017-12-9 17:14
引用: gxg1122 发表于 2017-12-9 17:14
你分频到12MHz,你这个定时器的执行周期就是计数值/12m。程序执行速度还是72MHZ

谢谢,那如果我要使用一个通用寄存器给设置周期,那周期是等于CNT寄存器里的值/12m,还是ARR寄存器的值/12m
点赞  2017-12-10 11:25
引用: c2z3a5r7 发表于 2017-12-10 11:25
谢谢,那如果我要使用一个通用寄存器给设置周期,那周期是等于CNT寄存器里的值/12m,还是ARR寄存器的值/1 ...

把手册中定时器章节认真读一遍,这些问题就明白了。定时器,有自己工作额时钟频率。由时钟源 分频,倍频等方式得到。定时器以此频率工作。每次counter的值得加减就是在这个频率下进行。达到某个值,产生中断,counter值,重新开始加减。会有寄存器设置重载值。认真看一遍寄存器吧。
点赞  2017-12-11 10:18
楼主学操作系统学糊涂了,其实简单的单片机系统多任务是不合适的,程序间切换涉及的内容太多没有mmu支持的话是没有意义的。
点赞  2017-12-11 16:24
引用: c2z3a5r7 发表于 2017-12-10 11:25
谢谢,那如果我要使用一个通用寄存器给设置周期,那周期是等于CNT寄存器里的值/12m,还是ARR寄存器的值/1 ...

CNT计数值。还看你配置计数模式了。多看看手册就知道了。
点赞  2017-12-12 13:08
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复