|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于基于ucos-ii運(yùn)行多任務(wù)的問(wèn)題 |
| 作者:charleszha 欄目:ARM技術(shù) |
雖然書(shū)上的實(shí)驗(yàn)做完了,但是書(shū)上的關(guān)于ucos的實(shí)驗(yàn)只是跑了簡(jiǎn)單的單個(gè)任務(wù),我想在系統(tǒng)上跑多個(gè)任務(wù),比如:定時(shí)器實(shí)現(xiàn)20秒定時(shí)控制LED1閃爍,同時(shí)實(shí)現(xiàn)其他的竄口數(shù)據(jù)發(fā)送實(shí)驗(yàn).但是道理能想的通,可怎么樣實(shí)現(xiàn)具體步驟,代碼的接口等,我就不知道了,望大家能給我一個(gè)具體的例子幫我把思路理一下,謝謝了! |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2006/2/14 13:10:00 發(fā)布:
新建一個(gè)任務(wù)。調(diào)用系統(tǒng)延時(shí)20秒,控制LED…… |
|
| 3樓: | >>參與討論 |
| 作者: 上善若水 于 2006/2/15 20:07:00 發(fā)布:
不是要求太精確的延時(shí)都要調(diào)用系統(tǒng)的延時(shí)函數(shù), μC/OS-II 的實(shí)時(shí)性本質(zhì)上是內(nèi)核依據(jù)各個(gè)任務(wù)的優(yōu)先級(jí)和狀態(tài),進(jìn)行任務(wù)級(jí)的CPU控制權(quán)調(diào)度。為充分發(fā)揮內(nèi)核的這一優(yōu)越性,程序中的所有延時(shí)都應(yīng)調(diào)用μC/OS-II 內(nèi)置的延時(shí)函數(shù)。比如下面這個(gè)控制蜂鳴的函數(shù): void Beep (uint8 n) { for(; n>0; n--) { IO0CLR = BEEP; OSTimeDly(OS_TICKS_PER_SEC / 4); IO0SET = BEEP; OSTimeDly(OS_TICKS_PER_SEC / 4); } } 在某一時(shí)刻,正在調(diào)用Beep()的任務(wù)都將掛1/4 秒,在此延時(shí)間隔里內(nèi)核將CPU 的控制權(quán)交給所有處于就緒態(tài)的任務(wù)當(dāng)中優(yōu)先級(jí)最高的那個(gè)。你的LED閃爍代碼也是同樣道理,如果延時(shí)不要求太精確可以調(diào)用OSTimeDlyHMSM()。 這些都是hotpower給我說(shuō)的。我經(jīng)驗(yàn)證確實(shí)是這樣的。 |
|
| 4樓: | >>參與討論 |
| 作者: charleszha 于 2006/2/17 21:48:00 發(fā)布:
跪謝! 非常感謝以上的朋友的幫助!!! 跪謝! |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |