打印
[STM32F1]

同时开两个定时器

[复制链接]
2162|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
现在是当两个定时器同时工作时,发送出的脉冲频率不对,中间有不定间隔的攒动,导致电机抖动

使用特权

评论回复
5
AloneKaven| | 2022-10-9 20:55 | 只看该作者
方便贴一下代码看看吗?

使用特权

评论回复
6
renyaq| | 2022-10-9 20:56 | 只看该作者
你不要在两个地方控制 PWM 脉宽,  混乱了

使用特权

评论回复
7
supernan| | 2022-10-9 21:00 | 只看该作者

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

使用特权

评论回复
8
jiahy| | 2022-10-9 21:03 | 只看该作者
请问什么是影子寄存器

使用特权

评论回复
9
liuzaiy|  楼主 | 2022-10-9 21:05 | 只看该作者
我需要定时,在一定时间内改变PWM的脉宽。假如用一个定时器,可以计时并同时产生PWM波吗?

使用特权

评论回复
评论
香水城 2022-11-7 11:15 回复TA
可以肯定的是,计数定时 和 输出PWM是不矛盾的。 你注意下你的程序控制逻辑。 
10
liuzaiy|  楼主 | 2022-10-9 21:07 | 只看该作者
影子寄存器不太懂,麻烦多说说可以吗?

使用特权

评论回复
11
yszong| | 2022-10-9 21:12 | 只看该作者
定时器中断是怎么设置的,其实串口接受中断可以采用软件定时期的方式比较好

使用特权

评论回复
12
llljh| | 2022-10-9 21:16 | 只看该作者
中断处理是要占用CPU时间的,10ms和20ms同时的发生的时候,想想会发生什么

使用特权

评论回复
13
xxrs| | 2022-10-9 21:19 | 只看该作者
一个定时器的话,若只是改变占空比,不影响你计时的。

使用特权

评论回复
14
jiajs| | 2022-10-9 21:21 | 只看该作者
占空比通过CCR调整,计时由ARR决定。

使用特权

评论回复
15
jiajs| | 2022-10-9 21:23 | 只看该作者
计时基于更新事件。
更多操作

使用特权

评论回复
16
renyaq| | 2022-10-9 21:29 | 只看该作者
影子寄存器的引入是ARM的一个特点(X86,PowerPC都没有)。我们知道,ARM有16个通用寄存器,这16个通用寄存器在指令中使用4个bit来标识,但是在不同的模式下,同样的4个bit 指向不同的物理寄存器,这些不同的物理寄存器就被称之为影子寄存器。不同的通用寄存器的影子寄存器个数也不相同,有的没有,有的只有1个,有的多达5个。

使用特权

评论回复
17
chenho| | 2022-10-9 21:32 | 只看该作者
要记住一点:所有的影子寄存器都是一个实际存在的物理寄存器。

使用特权

评论回复
18
chuxh| | 2022-10-9 21:34 | 只看该作者
设计合理点。

使用特权

评论回复
19
dengdc| | 2022-10-9 21:36 | 只看该作者
用一个定时器,可以计时并同时产生PWM波吗? 可以,  可以用定时器的溢出中断计时

使用特权

评论回复
20
huangchui| | 2022-10-9 21:40 | 只看该作者
开启预装载就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝