2010年10月11日 星期一

利用計時器來設計工作分配以達到及時工作上的要求

在10/4的「Keil C時間中斷控制」文章中,我們寫了一個非常簡單的程式,來達到計時中斷的功能。社員有沒有發現同樣是LED的控制,但它不用for迴圈來進行延遲工作,整個程式找到不延遲函式,可是我們可以清楚地看出來,這是利用硬體中斷來設計定時的機制,社員們可以比較在9/27日發表「單顆LED控制」,利用硬體時間中斷來進行工作,會使CPU變得更有效率。接下來我們把它改造成簡易型即時作業系統,把LED右移程式單獨移出變成Job1()函式,如下圖:

接下來利用switch來進行工作分配,並撰寫Job2工作-LED左移,程式如下圖:

社員們應該會發現Job2比Job1快兩倍。
以下的功能您能做得到嗎?
P1上的LED比P0的LED左移速率快一倍。
P2上的LED比P1的LED左移速率快一倍。
P3上的LED比P2的LED左移速率快一倍。

沒有留言:

張貼留言