Timer 使用教程#
什么是 Timer?#
Timer(定时器)是一种用于按固定时间间隔执行任务的硬件模块。常见用途包括:
周期性执行回调函数(如定时打印、定时采集)
单次延迟触发事件(如启动延迟)
实现软件计时器、时钟、任务调度等功能
K230 Timer 特性#
特性 |
描述 |
|---|---|
定时器数量 |
内置 6 个硬件定时器 |
时间精度 |
最小周期为 1 微秒 |
支持模式 |
单次模式( |
支持类型 |
硬件定时器 / 软件定时器(编号为 -1) |
回调机制 |
超时时自动调用用户指定的函数 |
应用示例:定时打印任务#
以下示例展示如何使用 Timer 实现:
一次性延迟执行
周期性定时触发
资源释放
示例代码#
from machine import Timer
import time
# ========= 创建定时器 ========= #
tim = Timer(-1) # -1 表示软件定时器
# ========= 单次模式:100ms 后触发 ========= #
tim.init(period=100, mode=Timer.ONE_SHOT, callback=lambda t: print("单次触发:1"))
time.sleep(0.2) # 主程序延迟 200ms,确保回调触发
# ========= 周期模式:每秒触发一次 ========= #
tim.init(freq=1, mode=Timer.PERIODIC, callback=lambda t: print("周期触发:2"))
time.sleep(2) # 主程序等待 2 秒,观察输出
# ========= 释放定时器 ========= #
tim.deinit()
关键参数说明#
参数名 |
类型 |
说明 |
|---|---|---|
|
整数 (ms) |
定时周期(单位:毫秒),用于单次或周期定时。K230的最小 period 为 5ms 。 |
|
整数 (Hz) |
定时频率(单位:赫兹), |
|
常量 |
|
|
函数 |
定时器触发时自动调用的函数 |
模式详解#
1. 单次模式 Timer.ONE_SHOT#
tim.init(period=100, mode=Timer.ONE_SHOT, callback=func)
定时器仅触发 一次
时间到后自动停止
2. 周期模式 Timer.PERIODIC#
tim.init(freq=2, mode=Timer.PERIODIC, callback=func)
每 0.5 秒 触发一次
会持续运行,直到手动停止
使用注意事项#
注意点 |
说明 |
|---|---|
软件定时器编号 |
使用 |
回调函数执行时机 |
回调函数运行在系统中断上下文中,避免阻塞性操作或 |
不可重复初始化 |
若 Timer 正在运行,重新 |
释放资源 |
使用 |
应用场景举例#
实时定时控制:LED 闪烁、蜂鸣器报警
周期采样:传感器数据读取
超时控制:任务执行超时处理
系统心跳:定时打印“alive”标志
提示
Timer 模块详细用法请参考 K230 Timer API 文档
