簡述逐飛 K60 定時器程式的使用

2022-07-25 18:51:10 字數 1851 閱讀 4072

程式使用 k60 逐飛科技庫

pit_init_ms(pit1, 1);    // 設定定時器時間為 1ms
定時器時間過長,會造成程式執行後出現的效果非常遲鈍。

定時器時間過短,可能會使定時器裡的程式執行時間不夠,從而造成溢位。

所以在時間方面需要細心拿捏。

設定定時器的優先順序:

set_irq_priority(pit1_irqn, 0);    // 設定優先順序為 0
其中,0 優先順序最高,其次是 1,以此類推。

設定完成後,就可以開啟定時器,開始執行:

enable_irq(pit1_irqn);    // 開啟定時器 1
執行定時器時,需要注意定時器裡的程式最好不要過多,盡可能不要有延時函式。

// 定時器 1

void pit1_irqhandler(void)

這樣就基本實現了定時器的初始化及執行。

當然我們也可以同時用兩個甚至多個定時器,讓它們同時執行。但是,定時器過多可能會出現一些問題。比如:

出現兩個定時器同時滿足進入的條件時,這時就會根據定時器優先順序進行判斷先進入哪個定時器服務程式裡,高優先順序的執行完畢才會進入低優先順序定時器。

如果正在執行定時器服務程式(定時器 1)時,另乙個定時器(定時器 2)觸發,如果 2 優先順序高於 1,那麼會立即執行定時器 2 的服務程式,等定時器 2 執行完畢,才會繼續執行定時器 1。相反的,如果定時器 2 優先順序低於定時器 1,則等待定時器 1 執行完畢才會執行定時器 2。

也就是說,如果兩個或者多個定時器同時滿足執行條件,可能會造成低優先順序中斷裡的程式沒有機會執行,從而影響使用。所以,沒有太大必要的情況下,不建議同時使用多個定時器。

那麼,如果只用乙個定時器,而又需要讓程式在不同的時間下執行該怎麼辦呢?

如下給出乙個可行的方案:

// 定時器 0,計時 1ms

void pit0_irqhandler(void) // 1ms 標誌

if (timecount % 2 == 0 ) // 2ms 標誌

if (timecount % 5 == 0 ) // 5ms 標誌

if (timecount % 10 == 0 ) // 10ms 標誌

if (timecount % 20 == 0 ) // 20ms 標誌

if (timecount % 50 == 0 ) // 50ms 標誌

if (timecount % 200 == 0 ) // 200ms 標誌,並清除計時標誌

if (timeflag_1ms == 1) // 每 1ms 執行一次程式

if (timeflag_2ms == 1) // 每 2ms 執行一次程式

if (timeflag_5ms == 1) // 每 5ms 執行一次程式

if (timeflag_10ms == 1) // 每 10ms 執行一次程式

if (timeflag_20ms == 1) // 每 20ms 執行一次程式

if (timeflag_50ms == 1) // 每 50ms 執行一次程式

if (timeflag_200ms == 1) // 每 200ms 執行一次程式

pit_flag_clr(pit0); // 定時器標誌清除

}

如上,讓定時器裡的程式每 200ms 實現一次大迴圈。需要將每個程式的執行時間設定到位,便可以讓各個程式在不同的時間下干擾盡量少的執行。

飛思卡爾k60從零開始之PLL

k60的時鐘相比51複雜很多很多,但是我們一般常用的時鐘就是經過鎖相環 pll 計算出來的時鐘,因為他用的是外部晶振,比晶元內部的晶振要準確,長時間不會產生飄逸等等優點。建議新手對照手冊,看一篇配置步驟即可,沒有必要弄的很通透,知道分頻是多少,倍頻是多少,最後設定出來的核心時鐘是多少即可。因為往後的...

飛思卡爾K60系列的UART的波特率設定問題

1 brfd的用處 在k60的資料參考手冊的第1552頁中有給出一道波特率的求解公式 uart baud rate uart module clock 16 sbr 12 0 brfd 即波特率 uart時鐘頻率 16 sbr暫存器的值 brfd b 是乙個5位的精細調整暫存器 位於uartx c4...

微控制器定時器雙擊 微控制器實現60s定時器

2個定時中斷,2個按鈕中斷 include define seg p2 數碼管 斷碼口 define scanp p1 數碼管 com掃瞄口sbit oc p0 0 定義573鎖存器使能口,我是用的573驅動7段數碼管 sbit pb0 p3 2 按鈕0 sbit pb1 p3 3 按鈕1 第乙個定...