同时开两个定时器
定时器单独可以工作,但同时开两个定时器的时候,有些消息就接受不到只能等到程序中重开定时器才可以?
任务如下:一个定时器定时20MS,触发方式控制另外一个定时器发送PWM脉冲,20MS定时时间到,改变PWM脉冲的脉宽,可以正常工作。但如果开另外一个定时器,每10MS用来检测串口接受数据,如果接受到数据,然后就进行处理。
现在是当两个定时器同时工作时,发送出的脉冲频率不对,中间有不定间隔的攒动,导致电机抖动
方便贴一下代码看看吗? 你不要在两个地方控制 PWM 脉宽,混乱了
当然你可以使用影子寄存器的办法解决
请问什么是影子寄存器
我需要定时,在一定时间内改变PWM的脉宽。假如用一个定时器,可以计时并同时产生PWM波吗?
影子寄存器不太懂,麻烦多说说可以吗?
定时器中断是怎么设置的,其实串口接受中断可以采用软件定时期的方式比较好
中断处理是要占用CPU时间的,10ms和20ms同时的发生的时候,想想会发生什么
一个定时器的话,若只是改变占空比,不影响你计时的。
占空比通过CCR调整,计时由ARR决定。 计时基于更新事件。
更多操作 影子寄存器的引入是ARM的一个特点(X86,PowerPC都没有)。我们知道,ARM有16个通用寄存器,这16个通用寄存器在指令中使用4个bit来标识,但是在不同的模式下,同样的4个bit 指向不同的物理寄存器,这些不同的物理寄存器就被称之为影子寄存器。不同的通用寄存器的影子寄存器个数也不相同,有的没有,有的只有1个,有的多达5个。
要记住一点:所有的影子寄存器都是一个实际存在的物理寄存器。
设计合理点。
用一个定时器,可以计时并同时产生PWM波吗? 可以,可以用定时器的溢出中断计时
开启预装载就行了