micropython 中断_ESP32 MicroPython教程:定时器中断

简 介

本文主要介绍如何对运行在ESP32之上的MicroPython进行定时器中断的配置。有关ESP32定时器硬件的更多详情,请看这篇帖子:ESP32 Arduino:定时器中断 的第二部分。

测试是使用集成在FireBeetle ESP32开发板中的DFRobot的ESP-WROOM-32模块上进行的。使用软件是MicroPython IDE uPyCraft。

代 码

首先需要导入machine模块,以使用与定时器中断配置和处理相关的函数。

[AppleScript] 纯文本查看 复制代码import machine

接下来,声明一个计数器,定时器中断函数将使用这个计数器告知主代码中断已发生。之所以采取这种方式,主要是因为中断运行速度非常快,不应在中断内进行函数调用(比如print)。

当中断发生时,中断处理函数只是简单地让计数器递增,我们在中断函数外边使用循环对计数器的数值进行检查,并做出相应的操作。

[AppleScript] 纯文本查看 复制代码interruptCounter = 0

[AppleScript] 纯文本查看 复制代码totalInterruptsCounter = 0

接着,新建一个Timer类的对象,这个类位于machine模块中。我们将使用这个对象对定时器中断进行配置。

该类的构造函数可接收一个数值参数(0到3),表示所要使用的定时器硬件(ESP32共有4种定时器硬件)。本例将使用定时器0。

[AppleScript] 纯文本查看 复制代码timer = machine.Timer(0)

然后,声明一个叫做handleInterrupt的中断处理函数。该函数的输入参数是当中断被触发时的一个Timer类对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值