liuzaiy 发表于 2022-10-9 20:42

同时开两个定时器

定时器单独可以工作,但同时开两个定时器的时候,有些消息就接受不到

pangb 发表于 2022-10-9 20:45

只能等到程序中重开定时器才可以?

liuzaiy 发表于 2022-10-9 20:51

任务如下:一个定时器定时20MS,触发方式控制另外一个定时器发送PWM脉冲,20MS定时时间到,改变PWM脉冲的脉宽,可以正常工作。但如果开另外一个定时器,每10MS用来检测串口接受数据,如果接受到数据,然后就进行处理。

liuzaiy 发表于 2022-10-9 20:54

现在是当两个定时器同时工作时,发送出的脉冲频率不对,中间有不定间隔的攒动,导致电机抖动

AloneKaven 发表于 2022-10-9 20:55

方便贴一下代码看看吗?

renyaq 发表于 2022-10-9 20:56

你不要在两个地方控制 PWM 脉宽,混乱了

supernan 发表于 2022-10-9 21:00


当然你可以使用影子寄存器的办法解决

jiahy 发表于 2022-10-9 21:03

请问什么是影子寄存器

liuzaiy 发表于 2022-10-9 21:05

我需要定时,在一定时间内改变PWM的脉宽。假如用一个定时器,可以计时并同时产生PWM波吗?

liuzaiy 发表于 2022-10-9 21:07

影子寄存器不太懂,麻烦多说说可以吗?

yszong 发表于 2022-10-9 21:12

定时器中断是怎么设置的,其实串口接受中断可以采用软件定时期的方式比较好

llljh 发表于 2022-10-9 21:16

中断处理是要占用CPU时间的,10ms和20ms同时的发生的时候,想想会发生什么

xxrs 发表于 2022-10-9 21:19

一个定时器的话,若只是改变占空比,不影响你计时的。

jiajs 发表于 2022-10-9 21:21

占空比通过CCR调整,计时由ARR决定。

jiajs 发表于 2022-10-9 21:23

计时基于更新事件。
更多操作

renyaq 发表于 2022-10-9 21:29

影子寄存器的引入是ARM的一个特点(X86,PowerPC都没有)。我们知道,ARM有16个通用寄存器,这16个通用寄存器在指令中使用4个bit来标识,但是在不同的模式下,同样的4个bit 指向不同的物理寄存器,这些不同的物理寄存器就被称之为影子寄存器。不同的通用寄存器的影子寄存器个数也不相同,有的没有,有的只有1个,有的多达5个。

chenho 发表于 2022-10-9 21:32

要记住一点:所有的影子寄存器都是一个实际存在的物理寄存器。

chuxh 发表于 2022-10-9 21:34

设计合理点。

dengdc 发表于 2022-10-9 21:36

用一个定时器,可以计时并同时产生PWM波吗? 可以,可以用定时器的溢出中断计时

huangchui 发表于 2022-10-9 21:40

开启预装载就行了
页: [1] 2 3
查看完整版本: 同时开两个定时器