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

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

定时 / 计数器的功能


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


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


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


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



模式 T / C0 工作模式 WGM01 WGM00
普通模式 0 0
PWM、相位可调模式 0 1
CTC模式 1 0
快速PWM模式 1 1


微信截图_20220519160449.png


微信截图_20220519160502.png


三种工作模式的比较


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


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


微信截图_20220519160523.png


应用例子:


微信截图_20220519160539.png


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


WGM00 WGM01
0 1


功能:

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


1. 计时功能


微信截图_20220519160552.png


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


微信截图_20220519160602.png


应用例子:


微信截图_20220519160611.png


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


微信截图_20220519160621.png


应用例子:用PWM控制LED从暗到亮


微信截图_20220519160631.png


  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



目录
相关文章
|
SQL 存储 DataWorks
DataWorks数据同步功能支持全量更新和增量更新两种方式
【4月更文挑战第3天】DataWorks数据同步功能支持全量更新和增量更新两种方式
610 3
|
数据格式
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
一文读懂A2L文件和ASAP2 Studio的使用
|
容器
layui下拉多选框xm-select.js插件的使用
layui下拉多选框xm-select.js插件的使用
1145 0
|
11月前
|
存储
中断向量表的作用是什么?
【10月更文挑战第28天】中断向量表在计算机系统中扮演着至关重要的角色,它是实现中断处理、优先级管理、系统初始化以及硬件与软件交互的核心机制。通过中断向量表,计算机系统能够高效地响应各种中断事件,保证系统的稳定性、可靠性和实时性,为计算机的正常运行和各种应用程序的执行提供了有力支持。
810 60
|
测试技术 Python
在pycharm中文件取消用 pytest模式打开的操作
在pycharm中文件取消用 pytest模式打开的操作
1196 0
 在pycharm中文件取消用 pytest模式打开的操作
|
SQL 关系型数据库 MySQL
mysql too many connections 解决
mysql too many connections 解决
487 4
|
Python
超详细的Python中 pip 常用命令,值得收藏!
超详细的Python中 pip 常用命令,值得收藏!
420 0
|
存储 缓存 算法
RAM与ROM的区别及应用
RAM与ROM的区别及应用
|
Java 大数据 Scala
Scala快速入门--Scala环境搭建【Windows10】图解
Scala快速入门--Scala环境搭建【Windows10】图解
270 0
|
虚拟化
VMware克隆虚拟机后修改MAC地址、UUID、IP和主机名
VMware克隆虚拟机后修改MAC地址、UUID、IP和主机名
616 0
VMware克隆虚拟机后修改MAC地址、UUID、IP和主机名