【esp32】可变时间的定时器中断的开启和关闭

前言

回忆若能下酒,往事便可作一场宿醉。醒来时,天依旧清亮,风仍然分明,而光阴的两岸,终究无法以一苇杭之。我知你心意。无须更多言语,我必与你相忘于江湖,以沧桑为饮,年华果腹,岁月做衣锦华服,于百转千回后,悄然转身,然后,离去。——《一念永恒》

【esp32】可变时间的定时器中断的开启和关闭_第1张图片


         \;\\\;\\\;

目录

    • 前言
    • 定时器中断的开启和关闭

定时器中断的开启和关闭

from machine import Pin  #引脚
from machine import Timer #定时器中断
from machine import disable_irq
from machine import enable_irq
import time  #延时



beep=Pin(4,Pin.OUT)



def pulse_2KHz():
    i=0
    while True:
        i=not i
        beep.value(i)
        time.sleep_us(250)  #2kHz对应周期500us




#状态
beep_state=0
#定时器时间
latency=0


#中断函数,就是到时间了就翻转
def time0_irq(time0):
    global beep_state
    beep_state = not beep_state
    beep.value(beep_state)   #翻转
    
    global latency
    latency = ...
    #更改中断时间,并且启动中断
    time0.init(period=latency,mode=Timer.ONE_SHOT,callback=time0_irq)

    
    
def loop():  
    #先初始化
    beep.value(beep_state)
  
    #创建定时器
    t = Timer(0)
    t.init(period=10,mode=Timer.ONE_SHOT,callback=time0_irq)
    
    #中断状态
    irq_state=0
    
    i=0
    while True:
        ...
            #关闭定时器
            irq_state = disable_irq()
          
    	...
            #开启定时器
            enable_irq(irq_state)
    

         \;\\\;\\\;

你可能感兴趣的:(单片机,esp,python,单片机)