一、秒表计时
第1课 定制中断测试

一、任务目标
理解定时器中断,能口述「主循环在空转,为什么控制台仍按时出数」,并指出是哪一块积木在设周期、哪一块是回调。
二、我们要学什么
- 学习要点:定时器中断:周期 一到就进回调,不必让主循环一遍遍去问「到点了没有」
- 本课过关:能指出回调与主循环各干什么;改 周期 后,打印或点阵读数的疏密明显变化。
- 示例对齐:体验题对应 「1-1-1 定制中断测试」;完整代码对应 「1-1-2 简单计时器」。
三、本节要点
本节抓住「定时器回调」。体验 1-1-1 只打印 「系统运行时间」;点阵上的秒表数字是完整代码 1-1-2。
四、解题思路
- 输入:本课体验不依赖按键;完整代码仍由定时器自己累加。
- 输出:体验:控制台约每秒一行毫秒数。完整代码:点阵显示「计时」。
- 生活对照:闹钟到点自己响,不必你盯着表问「到了没有」。
- 验证现象:主循环是 pass 时控制台仍出数;改 周期=1000 为更小,打印更密。
本课主要用到:定时器、串口打印;完整代码另用点阵屏。
- 1明确任务「定制中断测试」:先看控制台节拍,再对照完整代码的点阵计时。
- 2说清定时器三要素:谁(0号定时器)、多久一次(period)、到点做什么(callback)。
- 3主循环用 主循环空转 占住程序,回调才能一直被触发。
- 4载入后先运行看打印间隔;完整代码再看点阵数字是否每秒加一。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 控制 | 按固定周期触发回调,适合节拍、采样。 | 体验:定时器(0, 周期=1000) 回调打印 「系统运行时间」。 |
![]() | 控制 | 按条件反复执行内部积木;条件为「真」时相当于 「重复执行」 无限循环。 | 体验:主循环 pass,让定时器一直响。 |
![]() | 函数 | 封装一段可重复调用的积木。 | 体验:定义 tim_callback。 |
![]() | 串口 | 在控制台打印一行信息,便于调试。 | 体验:回调里 print(「系统运行时间」())。 |
![]() | 控制 | 读取开机以来的毫秒数,用于计时、测反应。 | 体验:打印开机毫秒数,看节拍是否均匀。 |
![]() | 变量 | 给变量写入新值。 | 完整代码:计时 = 0。 |
![]() | 板载显示 | 按设定时间显示图案或字符串。 | 完整代码:点阵居中显示计时。 |
![]() | 变量 | 读取变量当前值。 | 完整代码:把计时送到屏上。 |
![]() | 变量 | 声明在函数内外都能用的变量。 | 完整代码:回调里 global 计时。 |
![]() | 数学 | 对变量做 +=、-= 等自身运算。 | 完整代码:计时 += 1。 |
六、知识点讲解
定时器中断:不必让主程序一遍遍去「问现在到点了没有」,到点后由定时器自己插入回调——闹钟到点自己响,不必你盯着表。轮询 vs 中断:轮询:主循环不停检查条件,检查不到就干等。中断:硬件按固定周期触发回调函数,主循环哪怕是 pass,回调仍会按时执行。本课体验题里主循环几乎空转,控制台却仍每隔约 1 秒打印一次毫秒数,就是中断在干活。定时器三要素:要说清三件事:谁(定时器 编号)、多久一次(周期,单位毫秒)、到点做什么(callback)。PERIODIC 表示周而复始,不是只响一次。系统运行时间:「系统运行时间」 是开机以来的毫秒数,适合当「现在几点」的尺子。打印它能看见节拍是否均匀;后面做秒表、测反应,都要靠时刻差,而不是靠人眼数 延时。
对照与过关:回调函数里尽量短:计一次数、打一行日志即可;把显示、按键判断留给主循环,避免回调里卡太久打乱节拍。改 周期 再运行:间隔变小,打印更密;变大则更稀。这就是后面「精度」课要调的那个旋钮。能口述「主循环在空转,为什么控制台仍按时出数」,并指出是哪一块积木在设周期、哪一块是回调。先分清「定时器回调」和「主循环」各干什么,再载入示例对照打印间隔。
七、编程练习
点「载入」打开 MixVM(board=mini_design)。默认图形化积木;起步程序与积木均来自 MixGo MINI 兴趣课程/学期2。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
兴趣课程:1-1-1 定制中断测试.mix。载入后运行。
正在载入编程环境
正在载入 MixGo MINI 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验题必须按键,控制台才会打印毫秒数。
判断:主循环几乎空转时,定时器仍可按 周期 进入回调。
体验题约每秒打印一次 「系统运行时间」,主要靠哪一块?
把 周期 从 1000 改成 200,最可能看到什么?
九、本节小结
本课主题是定时器中断:定时器中断是周期一到就进回调,不必让主循环一遍遍去问到点了没有。体验程序在回调里打印或刷新读数;完整程序做成简单计时器。改周期后,打印或点阵读数的疏密会明显变化。









