ESP32-02-Timer中斷觸發
發表於 : 2025年 11月 6日, 08:17
ESP32-02-Timer中斷觸發
Timer0每隔1秒,中斷觸發一次,不斷循環
from machine import Timer
import time
# 定時器中斷處理函數
def timer_callback(timer):
print("Timer interrupt triggered!")
# 建立一個 Timer 物件,使用計時器 0
# 模式為 Timer.ONE_SHOT (一次性觸發) 或 Timer.PERIODIC (週期性觸發)
# 設定時間間隔為 1000 毫秒 (1 秒)
# 執行 timer_callback 函數
tim0 = Timer(0)
tim0.init(period=1000, mode=Timer.PERIODIC, callback=timer_callback)
# 主迴圈,可以讓程式保持運行,等待中斷發生
while True:
time.sleep(0.1)
https://wokwi.com/projects/446853402993883137
Timer0每隔1秒,中斷觸發一次,不斷循環
from machine import Timer
import time
# 定時器中斷處理函數
def timer_callback(timer):
print("Timer interrupt triggered!")
# 建立一個 Timer 物件,使用計時器 0
# 模式為 Timer.ONE_SHOT (一次性觸發) 或 Timer.PERIODIC (週期性觸發)
# 設定時間間隔為 1000 毫秒 (1 秒)
# 執行 timer_callback 函數
tim0 = Timer(0)
tim0.init(period=1000, mode=Timer.PERIODIC, callback=timer_callback)
# 主迴圈,可以讓程式保持運行,等待中斷發生
while True:
time.sleep(0.1)
代碼: 選擇全部
from machine import Timer,Pin #使用machine模組中的Timer及Pin
LED_1=Pin(4,Pin.OUT) #輸出腳位
LED_2=Pin(16,Pin.OUT) #輸出腳位
LED_1.value(1) #初始設定
LED_2.value(0) #初始設定
timer=Timer(0) #使用第0號計時器
def LED_Callback(timer): #函式(副程式)
LED_1.value(not LED_1.value()) #反向
LED_2.value(not LED_2.value()) #反向
timer.init(period=1000,mode=Timer.PERIODIC,callback=LED_Callback)
#timer.init(週期,循環模式,呼叫函式)