训练表
| # | 任务 | 验收标准 | 最小代码 |
|---|---|---|---|
| 1 | 按键中断计数:短按计数,长按清零;10 次亮红灯 | 抖动不重复计数;ISR 内不打印 | 01_button_interrupt |
| 2 | 硬件定时器控制两种闪烁速度,串口实时改周期 | 闪烁期间按键和串口无卡顿 | 02_hardware_timer / 07_rgb_patterns |
| 3 | Touch 自动校准,连续有效 50 ms 才触发 | 重启、换导电片后仍可校准使用 | 03_touch_guard |
| 4 | ADC 三档指示,边界增加 50 mV 迟滞 | 阈值附近小幅波动不反复变色 | 04_adc_filter_hysteresis |
| 5 | 解析 AA LEN CMD DATA SUM 二进制帧 | 错误长度、超时、校验错均丢弃 | 05_uart_checksum_frame |
| 6 | NVS 保存带版本和校验的结构体 | 首次启动、数据损坏和版本变化可恢复 | 06_nvs_versioned / 06_nvs_blob |
| 7 | WS2812 实现常亮、慢闪、快闪三种模式 | 切换模式不调用长 delay | 07_rgb_patterns |
| 8 | 实现安全、就绪、运行、故障状态机 | 任何传感器故障立即进入安全输出 | 08_fail_safe_state_machine |
代码位置
Arduino 复制片段位于 modules/arduino;完整可编译上下文在九套 Arduino 正式工程中。
训练方法
- 先不看代码,用纸写出输入、状态、输出和时间条件。
- 限定 30 分钟完成最小功能。
- 用现成片段补齐可靠性,再对照串口日志验收。
- 最后把题目换一个故事背景,确认自己理解的是逻辑而不是题面。