OpenMV深入学习【定时器,中断什么的】

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

比如, 你一直在写作业,突然写不下去,跑去看会手机,回来继续写作业,这就是中断。

# 定时器控制例子
#
# 这个例子展示了如何使用回调函数和定时器

import time
from pyb import Pin, Timer

def tick(timer):            # we will receive the timer object when being called
    print("Timer callback")

tim = Timer(4, freq=1)      # create a timer object using timer 4 - trigger at 1Hz
tim.callback(tick)          # set the callback to our tick function

while (True):
    time.sleep(1000)

下面灯的频率和主函数那里没有冲突,保持一定

import pyb,time

tim = pyb.Timer(4)              # create a timer object using timer 4
                                # 定义Timer对象 timer4
tim.init(freq=4)                # trigger at 2Hz
                                # 设定频率为2Hz
while True:
    tim.callback(lambda t:pyb.LED(1).toggle()) # 设定定时器的回调函数为LED闪烁(关/开)
    time.sleep(1000)
    print(1111)
    time.sleep(2000)
    print(2222)

其实把它放回上面也可以的喔

import pyb,time

tim = pyb.Timer(4)              # create a timer object using timer 4
                                # 定义Timer对象 timer4
tim.init(freq=4)                # trigger at 2Hz
                                # 设定频率为2Hz
tim.callback(lambda t:pyb.LED(1).toggle()) # 设定定时器的回调函数为LED闪烁(关/开)                                
while True:
    
    time.sleep(1000)
    print(1111)
    time.sleep(2000)
    print(2222)
    
    

定时器例子:使用两个定时器

import pyb,time


tim_3 = pyb.Timer(3)              # create a timer object using timer 4
tim_3.init(freq=2)                # trigger at 2Hz

tim_4 = pyb.Timer(4)
tim_4.init(freq=1) 

def led_blink(timer):
    pyb.LED(1).toggle()

def hand_reset(timer):
    print('手臂复位')
    
tim_4.callback(led_blink)
while True:
    a=1
    if a==1:
        tim_3.callback(hand_reset)
      

在这里插入图片描述

这个应该比较清楚定时器作用:

import pyb,time


tim_3 = pyb.Timer(3)              # create a timer object using timer 4
tim_3.init(freq=2)                # trigger at 2Hz

tim_2 = pyb.Timer(4)
tim_2.init(freq=1/30) 
i=0

def jishi(Timer):  
    print('时间计时半分钟')

def led_blink(timer):
    pyb.LED(1).toggle()

def hand_reset(timer):
    print('手臂复位')
    

tim_3.callback(led_blink)
tim_2.callback(jishi)
while True:
    time.sleep(1000)
    i+=1
    print(i)
    s=i%60
    if s==0:
        print('1秒到了')
      

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42807924/article/details/83000017