【嵌入式系统】定时 / 计数器及其应用

308 阅读2分钟

定时 / 计数器的功能

  1. 计数:记录脉冲的个数,从而可以测量位移、速度、流量等物理量。
  2. 计时:通过已知频率的脉冲进行计数,可以实现精确计时。
  3. 产生PWM波:产生不同占空比的PWM波,实现数 / 模转换,从而可以对电机、开关电源等设备进行控制。

两种定时/计数器的脉冲信号源

  1. 外部脉冲信号源:从外部通过引脚进入单片机
  2. 内部脉冲信号源:由单片机内部脉冲振荡器产生

定时/计数器的四种工作模式与设定


模式T / C0 工作模式WGM01WGM00
普通模式00
PWM、相位可调模式01
CTC模式10
快速PWM模式11

在这里插入图片描述


在这里插入图片描述


三种工作模式的比较

  • **普通模式:**用于计时。TCNT0需要在程序中赋值,顶是255
  • **比较匹配清0模式:**用于计时和产生占空比为50%的方波,顶是OCR0
  • **快速PWM模式:**用于产生不同占空比的方波,顶是255,OCR0是输出引脚的翻转点

T / C0 工作模式之普通模式


在这里插入图片描述


应用例子:
在这里插入图片描述


T / C0工作模式之比较匹配清0模式

WGM00WGM01
01

功能:

  1. 计时
  2. 产生占空比为50%的不同频率的方波(调频)

1. 计时功能
在这里插入图片描述


2. 产生占空比为50%的不同频率的方波(调频)
在这里插入图片描述


应用例子:
在这里插入图片描述


T / C0工作模式之快速PWM模式

在这里插入图片描述


应用例子:用PWM控制LED从暗到亮
在这里插入图片描述

  1. LED在可承受的范围内,电流越大亮度越高
  2. 在此电路中,PA0输出5V,LED最暗
  3. PA0输出0V,LED最亮

公式:PWM波的等效电压 = 占空比 * 高电平电压
(例如:高电平电压为5V,占空比为20%,等效电压等于5*20%=1V)

应用例子:基于PWM的可调节亮度的LED灯

硬件:

  1. led接OC0引脚
  2. 两个按键分别接INT0和INT1引脚

软件:

  1. C/T0 设置为快速PWM模式
  2. 定义wide 变量,用于调节占空比的系数
  3. 在INT0的中断服务程序中,wide = wide +1
  4. 在INT1的中断服务程序中,wide = wide -1