久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 多線程框架

多線程框架

作者: 時間:2011-12-28 來源:網絡 收藏

case 0:

本文引用地址:http://cqxgywz.com/article/172261.htm

break;

case 8://最高優先級

//任務8

break;

case 7:

//任務7

break;

……

case 2:

//任務2

break;

case 1:

//任務1

break;

}

}

}

六、程序編寫方法

1、主函數

void main(void)

{

InitialMCU();

ActObjReadySet = 0;

while(1){

ActObjScheduler();

}

}

2、中斷函數

void ISR_Timer(void)

{

TmrCtr ++;

if(TmrCtr > 5){//40ms

TmrCtr = 0;

ActObjSet(8); //讓定時執行的任務就緒

}

}

void ISR_AD(void)

{

_adf = 0;

ADValue = _adrh;

ActObjSet(3);//讓計算任務就緒

}

3、任務函數

和其它函數沒有區別

void AlarmOut()

{

if(AlarmOutctr > 0){

AlarmOutctr --;

PFD_OUT = !PFD_OUT;

TmrStart(4,15);//1s

}else{

ConctrolStat = END_STAT;

PFD_OUT = 0;

}

}

七、使用任務調度的優勢

1、多個同時就緒時,高優先級先執行。

2、高優先級,最長等待時間是上一個正執行的完成時間

3、因為主循環時間最長時是最長線程的執行時間,所以有些中斷中執行的代碼可以移到任務中。

4、可以減少條件語句。

5、使軟件結構更合理,清晰。

八、結語:

本文介紹的方法在HOLTEK系列8位MCU和NXP的LPC900中有數十個項目的應用。并且在這基礎上把switch改為函數指針,加上事件隊列和事件延遲后,在LPC2000的ARM上成功應用。


上一頁 1 2 下一頁

關鍵詞: 框架 線程

評論


相關推薦

技術專區

關閉