嵌入式系统(七)脉冲宽度调制
Published in:2023-12-08 | category: 嵌入式系统

脉冲宽度调制以其控制简单、灵活和动态响应好的优点而

成为电工电子技术中广泛应用的控制方式,也是人们研究的热点。

例:实现LED亮度调节,直流电机转速调节

本质原理就是 LED灯以一定的亮暗比例时间循环,亮的占比越大,灯的亮度就越大

占空比:是指脉冲信号的通电时间与通电周期的比

1 PWM调节LED灯的三种方式

1)模拟方式

1
2
3
4
while(1){
LED=1; delay(cycle*dutycycle);
LED=0; delay(cycle* ( 1-dutycycle));
}

模拟方式就通过调整亮灭后delay延迟函数进行控制

2)定时器的定时中断方式(溢出中断)

1
2

定时cycle*dutycycle,定时中断发生时led=0;再定时cycle( 1-dutycycle),定时中断发生时led=1;

3)定时器的比较输出(output compare)方式

Timer1/Timer3/Timer4的output compare模式

使用Timer比较输出实现PWM的一般步骤

1 确定Timer及通道,配置输出引脚

2 配置Timer的工作模式和计数值上限

TxCC0

3 使能Timer通道的比较输出功能,配置通道的比较值

配置TxCCTLy,TxCCyH和TxCCyL

比较输出的原理是什么?

就是调整高电平的比例,比较输出应该就是设了一个比较值,然后有3个工作方式和7个比较模式,选好工作模式和比较模式,然后引脚就能输出特定的波形,设置一个最大值,一个比较值。然后自由模式最大值是固定的不用设置

3个工作方式,就是之前讲到的

1 自由运行模式:计数器从0x0000开始,在每个活动 时钟边沿增加1,当计数器达到0xFFFF时溢出,计数器重新载入0x0000并开始新一轮的递增计数。该模式的计数周期是固定值0xFFFF,当达到最终计数 值0xFFFF时,标志位T1IF和OVFIF被设置。

2.模模式:计数器从0x0000开始,在每个活动时钟边 沿增加1,当计数器达到T1CC0寄存器保存的值时 溢出,计数器又将从0x0000开始新一轮的递增计数, 模模式的计数周期可由用户自行设定。

3. 正计数/倒计数模式:计数器反复从0x0000 开始,正计数到TICC0保存的最终计数值,然后再倒计数回0x0000,当达到最终计数值时,标志位T1IF和OVFIF被设置

7个比较模式

补充例程2

在模模式下T1计数器的值到达T1CC0后,不会产生溢出中断(相应的溢出标志不会置1),这点需要特别注意。和连续计数模式不同,它必须设置通道0的输出比较,而且溢出时也是通道0的中断标志,而非T1的总溢出中断标志。

模模式下获取计数值到达T1CC0中断的解决方法:

– 开启通道0的输出比较模式,在中断函数中也只有CC0的中断标志位,而不是使用溢出中断标记位。

Prev:
嵌入式系统(八)看门狗
Next:
嵌入式系统(六)模数转换