首先加载machine及其中的Timer, 并定义一个定时器timer.

from machine import Timer
import machine

timer = Timer(0)  # Timer的参数是可变的, 代表硬件定时器的编号.

定义中断处理函数与中断变量.

counter = 0

def hantimer(timer)
  global counter
  counter = counter+1
  '''
  中断处理代码  # 此处不建议加入过多代码或者循环/递归, 容易出错.
  '''

初始化计时器:

timer.init(period=1000, mode=Timer.PERIODIC, callback=hantimer)
# period的单位为ms, 此处每过1000执行一次中断函数hantimer.

不断查询中断变量, 获取中断后复原之.

while 1:
  if counter > 0:
    state = machine.disable_irq() # 从计时器处释放中断函数, state暂存释放的中断函数
    counter = counter-1 # 复原中断变量
    machine.enable_irq(state) # 重新关联中断函数与计时器
    '''
    中断处理代码
    '''


单片机 Python hardware

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!