91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

由于項目的需求,不可避免的會在單片機上實現(xiàn)多任務處理,然而多任務之間的交互處理是令大家頭疼的意見事情。處理方式有一下幾種:1、安裝UCOS之類的實時操作系統(tǒng),但每次更換單片機都需要重新移植比較麻煩;2、用狀態(tài)機實現(xiàn),能夠快速有效的實現(xiàn)多任務程序,但是狀態(tài)機的引用導致程序看起來不完正,比較零碎,可讀性比較差。3、結合UCOS和狀態(tài)機思想,對狀態(tài)機進行改良,得到了Protothreads的微型系統(tǒng),代碼開源,只有幾十行代碼就可以實現(xiàn)

資源截圖

代碼片段和文件信息

//?1.cpp?:?Defines?the?entry?point?for?the?console?application.
//
//#include?
//#include?

#include?
#include?“stdafx.h“

#include?“pt_type.h“
#include?“pt_config.h“
#include?“pt.h“
#include?“pt_ex.h“
#include?“pt_timer.h“
#include?“pt-sem.h“
#include?“l(fā)c.h“

#include?

extern?void?SIGNAL();


PT_TMR_Create(tmr1);
PT_TMR_Create(tmr2);
PT_TMR_Create(tmr3);
PT_TMR_Create(tmr4);

PT_TSK_Create(protothread1);
PT_TSK_Create(protothread2);
PT_TSK_Create(protothread3);
PT_TSK_Create(protothread4);

void?MyTicket()
{
int?jkab;
//putchar(‘\a‘);
Sleep(1);
????SIGNAL();
}

PT_THREAD(protothread1(struct?pt?*pt))
{
??PT_BEGIN(pt);
??while(1)?
??{???
??????PT_TimerSet(&tmr1?3000);
??????PT_WAIT_UNTIL(pt?PT_TimerExpired(&tmr1));
??printf(“Hello?World?1!\n“);
??}
??PT_END(pt);
}

PT_THREAD(protothread2(struct?pt?*pt))
{
??PT_BEGIN(pt);
??while(1)?
??{
??????PT_TimerSet(&tmr2?2000);
??????PT_WAIT_UNTIL(pt?PT_TimerExpired(&tmr2));
??printf(“Hello?World?2!\n“);
??}
??PT_END(pt);
}

PT_THREAD(protothread3(struct?pt?*pt))
{
??PT_BEGIN(pt);
??while(1)?
??{
??????PT_TimerSet(&tmr3?200);
??????PT_WAIT_UNTIL(pt?PT_TimerExpired(&tmr3));
??printf(“Hello?World?3!\n“);
??}
??PT_END(pt);
}

PT_THREAD(protothread4(struct?pt?*pt))
{
??PT_BEGIN(pt);
??while(1)?
??{
??????PT_TimerSet(&tmr4?400);
??????PT_WAIT_UNTIL(pt?PT_TimerExpired(&tmr4));
??printf(“Hello?World?4!\n“);
??}
??PT_END(pt);
}


int?main(int?argc?char*?argv[])
{
printf(“Hello?World!\n“);

int?i=0;

????PT_INIT(&PT_TCB(protothread1));
????PT_INIT(&PT_TCB(protothread2));
????PT_INIT(&PT_TCB(protothread3));
????PT_INIT(&PT_TCB(protothread4));?
????
????while(1)?{
if?(i<2)?MyTicket();
else{
i=0;
protothread1(&PT_TCB(protothread1));
protothread2(&PT_TCB(protothread2));
protothread3(&PT_TCB(protothread3));
protothread4(&PT_TCB(protothread4));
} ?
i++;
}
return?0;
}


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-07-22?11:40??protothreads\
?????目錄???????????0??2014-07-26?17:02??protothreads\1\
?????文件????????2028??2014-07-26?17:02??protothreads\1\1.cpp
?????文件????????4310??2010-05-19?11:35??protothreads\1\1.dsp
?????文件?????????525??2010-05-19?09:55??protothreads\1\1.dsw
?????文件?????8408064??2014-08-18?14:12??protothreads\1\1.ncb
?????文件???????48640??2010-05-19?17:56??protothreads\1\1.opt
?????文件?????????238??2010-05-19?13:20??protothreads\1\1.plg
?????文件?????????867??2014-08-14?17:15??protothreads\1\1.sln
?????文件???????11264??2014-08-18?14:12??protothreads\1\1.suo
?????文件????????6247??2014-07-26?16:45??protothreads\1\1.vcproj
?????文件????????1427??2014-08-18?14:12??protothreads\1\1.vcproj.DY5A4OBOCPYFOX7.Administrator.user
?????目錄???????????0??2014-07-26?16:48??protothreads\1\Debug\
?????文件??????432128??2014-07-26?16:48??protothreads\1\Debug\1.exe
?????文件?????????406??2014-07-26?16:47??protothreads\1\Debug\1.exe.embed.manifest
?????文件?????????472??2014-07-26?16:47??protothreads\1\Debug\1.exe.embed.manifest.res
?????文件?????????381??2014-07-26?16:48??protothreads\1\Debug\1.exe.intermediate.manifest
?????文件?????1009340??2014-07-26?16:48??protothreads\1\Debug\1.ilk
?????文件???????11662??2014-07-26?16:48??protothreads\1\Debug\1.obj
?????文件?????2031616??2014-07-26?16:45??protothreads\1\Debug\1.pch
?????文件?????2051072??2014-07-26?16:48??protothreads\1\Debug\1.pdb
?????文件????????6424??2014-07-26?16:48??protothreads\1\Debug\BuildLog.htm
?????文件???????10692??2014-07-26?16:45??protothreads\1\Debug\StdAfx.obj
?????文件??????????67??2014-07-26?16:48??protothreads\1\Debug\mt.dep
?????文件????????3952??2014-07-26?16:45??protothreads\1\Debug\pt_ticks.obj
?????文件??????191488??2014-07-26?16:48??protothreads\1\Debug\vc90.idb
?????文件??????126976??2014-07-26?16:48??protothreads\1\Debug\vc90.pdb
?????文件????????1178??2010-05-19?09:55??protothreads\1\ReadMe.txt
?????目錄???????????0??2014-07-18?13:25??protothreads\1\Release\
?????文件???????32768??2010-05-19?12:13??protothreads\1\Release\1.exe
?????文件?????????288??2010-05-19?09:55??protothreads\1\StdAfx.cpp
............此處省略89個文件信息

評論

共有 條評論