单元一

第1课 分秒必争-定制中断测试

任务场景:分秒必争-定制中断测试
任务场景:分秒必争-定制中断测试

一、任务目标

用定时中断做出简单计时器,一运行屏上数字自己变大。

二、我们要学什么

  • 学习要点:定时中断|周期到了就插入回调
  • 本课过关:能完成:说出定时中断就是按固定周期插入一段回调,主循环空着计时也能运行;载入编程体验,指出约每 1 秒在串口打印一次系统毫秒数;再运行完整程序,指出约每 0.1 秒给「计时」加一,彩屏居中显示这个数,数字会一直往上加。
  • 示例对齐:编程体验对应 「1-1-1 分秒必争-定制中断测试」;完整程序对应 「1-1-2 分秒必争-简单计时器」。

三、本节要点

重难点是分清两套怎么看:编程体验看串口,大约每 1 秒多一行系统毫秒数;完整程序看彩屏,「计时」大约每 0.1 秒加一。同一套到点做事的办法,差在周期长短和观察位置。

1读场景明确真实任务
2对要点定时中断|周期到了就插入回调
3载入运行十学期兴趣课程积木/代码

四、解题思路

任务:用两套程序认识定时中断——回调按周期自动执行。编程体验在回调里打印系统毫秒数;完整程序在回调里给「计时」加一,主循环把这个数显示到彩屏。请对照串口和彩屏。

本课主要用到:串口;彩屏 TFT。

  1. 1明确任务:观察定时器到点后回调有没有执行。
  2. 2设置周期定时器:编程体验周期 1000 毫秒,完整程序周期 100 毫秒。
  3. 3在回调函数里做事:编程体验打印毫秒数,完整程序给「计时」加一。
  4. 4主循环可以空着,也可以只负责把「计时」显示到彩屏。
  5. 5编程体验对照串口约每秒一行;完整程序对照彩屏数字往上加。

流程示意

设置周期定时器到点就执行回调编程体验打印毫秒数完整程序给计时加一对照串口或彩屏

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
设置定时器
控制按固定周期触发回调,适合节拍、采样。周期模式。编程体验周期 1000 毫秒,到点调用 tim_callback;完整程序周期 100 毫秒。
重复执行
控制按条件反复执行内部积木;条件为「真」时相当于 while True 无限循环。条件为「真」。编程体验循环体为空,只让程序一直开着;完整程序循环里把「计时」显示到彩屏。
定义函数
函数封装一段可重复调用的积木。定义 tim_callback。编程体验在里面打印毫秒数;完整程序在里面给「计时」加一。
打印输出
串口把信息打印到串口/控制台,便于调试。编程体验在回调里打印系统运行毫秒数,约每秒一行。
系统运行时间
控制读取开机以来的毫秒数,用于计时、测反应。编程体验在回调里读取开机以来的毫秒数,再打印出来。
赋值
变量给变量写入新值。完整程序先把「计时」写成 0,再交给定时器去加。
显示图案或文字
显示按设定时间显示图案或字符串。完整程序主循环把「计时」居中显示到彩屏,数字跟着加。
取变量
变量读取变量当前值。完整程序读取「计时」,送给彩屏显示,也送给加一运算。
全局变量
变量声明在函数内外都能用的变量。完整程序在回调里声明「计时」是全局量,才能改主程序里的同一个数。
math selfcalcu
数学本课程序中用到的积木,载入后可在工具箱中对照名称查看。完整程序在回调里把「计时」加 1。

六、知识点讲解

周期定时器用「设置定时器」积木,在「周期」参数里填毫秒数,到点就自动调用回调。主循环不必自己延时去数;编程体验填 1000,完整程序填 100。

先弄清:回调写在函数里,定时器到点来调用;再进编程练习对照。

七、编程练习

点「载入」打开 MixVM(board=sant_design)。默认图形化积木;起步程序与积木均来自 MixGo SANT 十学期兴趣课程/学期2。若题目带外设 design,载入时会自动导入接线。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

十学期兴趣课程:1-1-1 分秒必争-定制中断测试.mix。载入后运行。

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:编程体验约每 1 秒在串口打印一次系统毫秒数。

  2. 判断:完整程序约每 0.1 秒给「计时」加一,并在彩屏上显示这个数。

  3. 本课说的「定时中断」指的是?

  4. 编程体验和完整程序的主要差别是?

  5. 运行完整程序后,应看到?

九、本节小结

本课认识定时中断:按固定周期插入回调。编程体验约每秒打印一次毫秒数;完整程序约每 0.1 秒给「计时」加一,彩屏上的数字一直往上加。