準確的說,它是乙個排程(延時處理機制),每次想要定時執行某任務都必須寫入乙個排程。
'''
使用sched模組實現的timer,sched模組不是迴圈的,一次排程被執行後就over了,
如果想再執行,可以使用while迴圈的方式不停的呼叫該方法
'''import time, sched
#被排程觸發的函式
defevent_func
(msg)
:print
("current time:"
, time.strftime(
"%y-%m-%d %h:%m:%s"),
'msg:'
, msg)
defrun_function()
:#初始化sched模組的scheduler類
s = sched.scheduler(time.time, time.sleep)
#設定乙個排程,因為time.sleep()的時間是一秒,所以timer的間隔時間就是sleep的時間,加上enter的第乙個引數
s.enter(0,
2, event_func,
("timer event.",)
) s.run(
)def
timer1()
:while
true
:#sched模組不是迴圈的,一次排程被執行後就over了,如果想再執行,可以使用while迴圈的方式不停的呼叫該方法
time.sleep(1)
run_function(
)if __name__ ==
"__main__"
: timer1(
)
'''
timer類也是一次性觸發的,思路和sched大概差不多
'''import time
import threading
deftimer_start()
: t = threading.timer(
1, test_func,
("parameter1",)
) t.start(
)def
test_func
(msg1)
:print
("i'm test_func,"
, msg1)
timer_start(
)def
timer2()
: timer_start(
)while
true
: time.sleep(1)
if __name__ ==
"__main__"
: timer2(
)
雖然說上面的兩種現實看起來都很蠢,但是如果不借助第三方的庫,可能也只能這樣了. TIM基本定時器 定時
定時 輸出比較 輸入捕獲 互補輸出 分類 基本定時器 定時 通用定時器 定時 輸出比較 輸入捕獲 高階定時器 定時 輸出比較 輸入捕獲 互補輸出 f103系列的開發板一般是倆個高階定時器tim1 tim8 4個通用定時器tim2 3 4 5 2個基本定時器tim6 7 而根據容量的大小,又稍有區別。...
STM32定時器(TIM)之通用定時器
stm32的通用定時器有四個,分別是tim2,tim3,tim4,tim5,有以下功能 通用定時器的框圖如下 從圖中可以看出,通用定時器timx的觸發源 計數器時鐘的時鐘源 有四個 1 內部時鐘 clk int 2 外部時鐘模式1 外部輸入引腳 tix 分別經timx chx通道傳入 3 外部時鐘模...
Python3 x 迭代器 yield用法
迭代器有兩個重要部分 1.iter 用來獲取迭代器物件 2.next 獲取容器內下乙個元素 斐波列數列 1 1 2 3 5 8 等於前兩個數相加。class fab object 建構函式 def init self,max self.max max self.n,self.a,self.b 0,0...