12.7通用定时器的输出比较
我们不用滴答时钟,不用延时法,能不能实现呼吸灯?
在工业控制中,很多场合需要产生PWM信号,那PWM信号如何产生?
我们可以用定时器的输出比较功能实现上述要求。
重要概念:(必须记住)状态机
什么是定时器的输出比较功能?
对于通用定时器电路中,他的内部有一个参考信号,他的输出端有输出通道。
他有两个关键的寄存器,分别是计数器、和比较值寄存器。
我们可以给比较值寄存器任意一个数值,当计数器的数值和比较值寄存器中存储的数值相等时候,
参考信号会发生(8种形态之一)变化,那么根据程序的配置,参考信号可以决定输出信号。
中心对齐分两种
什么是PWM?
PWM是英文“Pulse Width Modulation”的缩写,
简称脉宽调制,
是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
简单一点,就是对脉冲宽度的控制
PID:比例积分微分
PLL : 锁相环
12.8输出比较的硬件电路结构
12.9输出比较程序如何写?
首先要读懂寄存器设定------去参考手册找TIME相关的模块
然后深入了解库函数底层源码---------FUNCTION 选项卡
PH10--11-12三个小灯
先写一段PWM的初始化
1、不用中断实现
2、用中断实现
课堂作业
几个有用的函数
用中断法怎么实现呼吸灯
用查询法怎么实现呼吸灯
必须利用定时器的输出比较功能
想一想延时法为什么会观测到多种不同的效果。
课后作业:
第一步编写PWM初始化程序
在初始化程序中开启时钟,
调用系统的初始化函数
进行通道配置
开启PWM模式/开启计数刷新中断并开启PWM模式--及相关中断设置
重定义系统初始化函数的回调函数,编写IO初始化程序
第二步
假如使用中断
编写中断入口函数------调用系统的通用处理函数---来源判定
编写系统通用中断处理函数的回调函数---设定比较值寄存器的值---递增--递减
如果不使用中断---编写程序设定比较值,调节时间观察现象
作业1:分别用查询法 中断法实现呼吸灯---必须利用OC功能
作业2:用cubemx配置定时器输出比较的初始化程序
作业3:按键中断 实现七彩灯程序,按键1控制颜色按键2控制呼吸效果
区域5:输出比较
OC1REF:内部参考信号 DTG控制电路
OC1:输出信号