刚接触MCU,在用stm32f103zet6做开发,求教一个新手问题,如果我使用一个通用定时器做次线程,最长单次执行时间只有20微秒,其余全是main函数里的主线程在跑,如果我给这个定时器预分频12mhz,那是不是意味这个定时器执行的时候是在12mhz频率下执行,而轮到主线程执行的时候依然是在72mhz下执行?还是在60mhz频率执行?
定时器预分频仅对计数器操作(加或者是减计数)起作用,对程序执行不起作用。
你分频到12MHz,你这个定时器的执行周期就是计数值/12m。程序执行速度还是72MHZ
谢谢,那如果我要使用一个通用寄存器给设置周期,那周期是等于CNT寄存器里的值/12m,还是ARR寄存器的值/12m
把手册中定时器章节认真读一遍,这些问题就明白了。定时器,有自己工作额时钟频率。由时钟源 分频,倍频等方式得到。定时器以此频率工作。每次counter的值得加减就是在这个频率下进行。达到某个值,产生中断,counter值,重新开始加减。会有寄存器设置重载值。认真看一遍寄存器吧。
楼主学操作系统学糊涂了,其实简单的单片机系统多任务是不合适的,程序间切换涉及的内容太多没有mmu支持的话是没有意义的。
CNT计数值。还看你配置计数模式了。多看看手册就知道了。