Example 10: timer interrupt
About 3 min
Example 10: timer interrupt
Synchronized Device Documentation
This page corresponds to the synchronized Chinese source. Commands, JSON examples, API paths, field names, and screenshots are kept aligned with the Chinese device-side source documentation.
What This Page Covers
- Overview
- Wiring
- JSON Configuration Example
- PeriphExec Linkage
- Notes
Source Reference
The detailed operational source is preserved below so implementation details stay exact while the English navigation, titles, and reading path remain available.
示例10:定时器中断
实验概述
使用 FastBee 的定时触发器(Timer Trigger)实现周期性任务执行,如定时采集数据、定时发送状态、定时控制外设等。无需硬件定时器配置,通过外设执行规则即可实现。
硬件接线
本实验不需要额外硬件,使用开发板上现有的 LED 或其他外设演示定时功能。
| 开发板标识 | GPIO引脚 | 连接设备 |
|---|---|---|
| D1 | GPIO15 | LED(用于演示定时效果) |
JSON 配置示例
{
"peripherals": [
{
"id": "timer_led",
"name": "定时LED",
"type": 12,
"enabled": false,
"pins": [15],
"params": { "initialState": 1 }
}
]
}外设执行联动
场景1:固定间隔定时闪烁(定时触发)
功能:每1秒切换一次LED状态,实现闪烁效果
Web界面配置步骤
步骤1:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
1秒定时闪烁 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤2:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 按时间间隔执行 定时模式 选择 固定间隔 按毫秒间隔 间隔时间 10001000毫秒=1秒
步骤3:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 切换电平
- 目标外设:选择
timer_led
点击 保存 按钮
场景2:定时状态上报(定时触发)
功能:每5秒上报一次系统状态到云平台
Web界面配置步骤
- 创建规则,名称:
5秒状态上报 - 触发器配置:
- 触发类型:选择 定时触发
- 定时模式:选择 固定间隔
- 间隔时间:
5000(5秒)
- 动作配置:
- 动作类型:选择 系统上报
- 上报类型:
status
- 点击 保存
场景3:每天定时开灯(Cron表达式)
功能:每天早上8点自动开灯
Web界面配置步骤
- 创建规则,名称:
每天8点开灯 - 触发器配置:
- 触发类型:选择 定时触发
- 定时模式:选择 Cron表达式
- Cron表达式:
0 8 * * *(每天8:00)
- 动作配置:
- 动作类型:选择 低电平(共阳LED低电平点亮)
- 目标外设:选择
timer_led
- 点击 保存
定时模式说明
| 定时模式 | 参数 | 示例 | 说明 |
|---|---|---|---|
| 固定间隔 | interval(毫秒) | 1000 = 1秒 | 按固定时间间隔触发 |
| 每日定时 | 时间点 | 08:00 | 每天固定时间触发 |
| Cron表达式 | cron | "0 8 * * *" | 灵活的时间表达式 |
定时器参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
| interval | 固定间隔(毫秒) | 1000 = 1秒 |
| cron | Cron 表达式 | "0 8 * * *" = 每天8点 |
注意事项
- 最小间隔:建议不低于 100ms,过短会影响系统性能
- Cron 依赖 NTP:使用 Cron 表达式需确保设备已通过 NTP 同步时间
- 多规则并行:可创建多个不同间隔的定时规则,互不影响
- 精度:软件定时器精度约 ±10ms,不适用于需要微秒级精度的场景
- 任务阻塞:定时触发的动作不应包含长时间阻塞操作
