一、秒表计时

第1课 定制中断测试

任务场景:定制中断测试
任务场景:定制中断测试

一、任务目标

理解定时器中断,能口述「主循环在空转,为什么控制台仍按时出数」,并指出是哪一块积木在设周期、哪一块是回调。

二、我们要学什么

  • 学习要点:定时器中断:周期 一到就进回调,不必让主循环一遍遍去问「到点了没有」
  • 本课过关:能指出回调与主循环各干什么;改 周期 后,打印或点阵读数的疏密明显变化。
  • 示例对齐:体验题对应 「1-1-1 定制中断测试」;完整代码对应 「1-1-2 简单计时器」。

三、本节要点

本节抓住「定时器回调」。体验 1-1-1 只打印 「系统运行时间」;点阵上的秒表数字是完整代码 1-1-2。

1读场景明确真实任务
2对要点定时器回调按时干活
3载入运行兴趣课程积木/代码

四、解题思路

  • 输入:本课体验不依赖按键;完整代码仍由定时器自己累加。
  • 输出:体验:控制台约每秒一行毫秒数。完整代码:点阵显示「计时」。
  • 生活对照:闹钟到点自己响,不必你盯着表问「到了没有」。
  • 验证现象:主循环是 pass 时控制台仍出数;改 周期=1000 为更小,打印更密。

本课主要用到:定时器、串口打印;完整代码另用点阵屏。

  1. 1明确任务「定制中断测试」:先看控制台节拍,再对照完整代码的点阵计时。
  2. 2说清定时器三要素:谁(0号定时器)、多久一次(period)、到点做什么(callback)。
  3. 3主循环用 主循环空转 占住程序,回调才能一直被触发。
  4. 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。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:体验题必须按键,控制台才会打印毫秒数。

  2. 判断:主循环几乎空转时,定时器仍可按 周期 进入回调。

  3. 体验题约每秒打印一次 「系统运行时间」,主要靠哪一块?

  4. 把 周期 从 1000 改成 200,最可能看到什么?

九、本节小结

本课主题是定时器中断:定时器中断是周期一到就进回调,不必让主循环一遍遍去问到点了没有。体验程序在回调里打印或刷新读数;完整程序做成简单计时器。改周期后,打印或点阵读数的疏密会明显变化。