概述

Ameba 系列产品提供很多定时器供用户使用:

  • 10 个 Basic Timer,其中:

    • TIM0 ~ TIM7 为低频 Basic Timer,时钟源是 SDM32K

    • TIM10、TIM11 为高频 Basic TImer,时钟源是 XTAL40M

  • 1 个 8 通道 PWM Timer:TIM8

  • 1 个 1 通道 Capture Timer:TIM9

  • 1 个 32 位 Debug Timer

  • 2 组 PMC Timer

Basic Timer

功能特性

  • 向上计数的 32 位计数器

  • 可以产生溢出中断

  • 自动重载寄存器的值可以预加载

  • 可以在睡眠状态下继续工作,并且可以通过中断唤醒系统

应用示例

SDK 提供了两类功能示例,帮助开发者了解和使用 Basic Timer 功能:

  • mbed 示例

    • 路径:{SDK}\component\example\peripheral\mbed\Timer\mbed_gtimer\{demo}

    • 展示如何在 mbed 环境中实现 Basic Timer 控制

  • raw 示例

    • 路径:{SDK}\component\example\peripheral\raw\Timer\raw_gtimer\{demo}

    • 展示如何在无抽象层的情况下直接控制 Basic Timer

备注

要了解示例支持的芯片,请查看示例路径下的 README.md 文件。

PWM Timer

功能特性

  • 向上计数的 16 位计数器

  • 自动重载寄存器的值可以预加载

  • 内部有 16 位的分频寄存器

  • 每个通道可以独立产生 PWM 波形

  • 可以产生的中断类型:

    • 计数器溢出中断

    • 软件更新事件中断

    • 通道的计数器溢出中断

    • 通道的捕获/比较中断

  • 三种工作模式

    • PWM 模式:用于生成占空比和周期可配置的方波

    • 输入捕获功能:用于捕获输入引脚上升沿/下降沿时计数器的数值

    • 单脉冲模式:用于检测到输入引脚的上升沿/下降沿/边沿后,在可编程延迟后产生一个具有可编程的脉冲。

应用示例

SDK 提供了两类功能示例,帮助开发者了解和使用 PWM Timer 功能:

  • mbed 示例

    • 路径:{SDK}\component\example\peripheral\mbed\Timer\mbed_pwm

    • 展示如何在 mbed 环境中实现 PWM Timer 控制

  • raw 示例

    • 路径:{SDK}\component\example\peripheral\raw\Timer\{demo}

    • 展示如何在无抽象层的情况下直接控制 PWM Timer

以下是对 raw 示例功能的简要说明:

备注

要了解示例支持的芯片,请查看示例路径下的 README.md 文件。

Capture Timer

功能特性

  • 向上计数的 16 位计数器

  • 内部有 16 位的分频寄存器

  • 自动重载寄存器的值可以预加载

  • 两种工作模式:

    • 记录输入引脚的脉冲宽度

    • 记录输入引脚在可配置周期内脉冲的数量

应用示例

SDK 提供了 raw 示例,帮助开发者了解和使用 Capture Timer 功能:

  • 路径:{SDK}\component\example\peripheral\raw\Timer\{demo}

  • 展示如何在无抽象层的情况下直接控制 Capture Timer

以下是对 raw 示例功能的简要说明:

备注

要了解示例支持的芯片,请查看示例路径下的 README.md 文件。

Debug Timer

功能特性

  • 两种时钟源可选:

    • XTAL40M:通过分频器得到 1M 的时钟源,每一拍计数时间是 1us

    • SDM32K:每 30.5us 计数器的值增大 31us

  • 可以在睡眠状态下继续计数

  • 无锁计数器:支持多核环境下安全并发读写

PMC Timer

功能特性

  • 有两组 PMC Timer, 每组 PMC Timer 内有四个计数器

    • 休眠倒计时计数器

    • 深度休眠倒计时计数器

    • 唤醒计数器

    • 预留计数器

  • 32 位宽向下计数,计数到 0 后自动停止

  • 在计数到 0 之后可配置是否产生中断

  • 以 SDM32K 作为时钟源

  • 在计数器工作过程中可以重新设置定时器倒计时的值