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

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

定时 / 计数器的功能


  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



目录
相关文章
|
9月前
|
数据采集 调度 C语言
嵌入式系统中的定时器中断与任务调度
嵌入式系统中的定时器中断与任务调度
460 0
|
Linux 调度
按键消抖的两种方法--中断延迟工作与定时器
按键消抖的两种方法--中断延迟工作与定时器
760 0
|
5月前
|
前端开发 JavaScript
前端基础(十三)_定时器(间歇定时器、延迟定时器)
本文介绍了JavaScript中定时器的使用,包括`setTimeout`和`setInterval`两种类型。`setTimeout`是实现延迟执行,即等待一定时间后执行一次指定的函数;而`setInterval`是实现间歇执行,即每隔一定时间就执行一次指定的函数。文章还介绍了如何使用`clearTimeout`和`clearInterval`来取消定时器的执行,并通过示例代码展示了定时器的创建和取消。
206 4
前端基础(十三)_定时器(间歇定时器、延迟定时器)
|
4月前
|
数据采集 传感器
定时中断基本结构
【10月更文挑战第21天】定时中断是在微控制器或计算机系统中,按预设时间间隔自动触发中断请求的机制。它由定时器硬件模块(含计数器、时钟源、控制寄存器)、中断控制器(处理中断请求、设置优先级、中断屏蔽)和中断服务程序(保存现场、执行任务、恢复现场)组成,实现定时任务的精确执行。
|
9月前
|
传感器 存储 安全
基于单片机的定时温控系统的设计_kaic
基于单片机的定时温控系统的设计_kaic
|
9月前
MCS接口技术----定时/计数,中断
MCS接口技术----定时/计数,中断
103 0
|
9月前
|
存储
【51单片机】初学者必读的一文【探究定时计数器与中断系统是如何配合起来的?】(9)
【51单片机】初学者必读的一文【探究定时计数器与中断系统是如何配合起来的?】(9)
Linux驱动中断与时间篇——高精度定时器hrtimer
Linux驱动中断与时间篇——高精度定时器hrtimer
定时中断实验【嵌入式系统】
定时中断实验【嵌入式系统】
126 0
龙芯2K驱动开发——使用中断触发读取GPIO电平值上传给读取进程
龙芯2K驱动开发——使用中断触发读取GPIO电平值上传给读取进程
526 0
龙芯2K驱动开发——使用中断触发读取GPIO电平值上传给读取进程