- 學過單片機的作業系統之后,一直很糾結,腦子一團糊涂
- 書上說,作業系統看似同時運行兩個任務,其實從真正意義上來說,MCU在同一時刻只運行了一個任務,兩個任務每個任務運行一個時間片,從效果上看就好像同時運行兩個任務,然后就開始糾結,那這樣,作業系統不也是一個任務一個任務的運行嘛,那作業系統和裸機運行相比優勢在哪呢?想啊想,,,就想到這么個例子,,,
- 最近趕緊去學學單片機的作業系統去,感覺到它的好處了,,
/*裸機*/
while(1)//LED燈閃爍的同時,蜂鳴器鳴叫(LED、BEEP同時間隔500ms閃爍、鳴叫)
{
LED=1;
BEEP=1;
LL_mDelay(500);
LED=0;
BEEP=0;
LL_mDelay(500);
}
//如果,閃爍的頻率和鳴叫的時間間隔不一樣呢?
//LED每500ms閃爍,BEEP每200ms鳴叫,如何實作?
while(1)
{
LED = 1;
BEEP = 1;
LL_mDelay(200);
BEEP = 0;
LL_mDelay(200);
BEEP = 1;
LL_mDelay(100);
LED = 0;
//....
/*當然,真正用的時候不會用延遲,用定時器中斷來處理就好,只是個示意*/
}
/*作業系統*/
osCreatTask LED_Task;
osCreatTask BEEP_Task;
void LED_Task(void)
{
while(1)
{
LED = 1;
LL_mDelay(500);
LED = 0;
LL_mDelay(500);
}
}
void BEEP_Task(void)
{
while(1)
{
BEEP =1 ;
LL_mDelay(200);
BEEP = 0;
LL_mDelay(200);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/207784.html
標籤:其他
上一篇:【匯編】用匯編語言實作32位回圈冗余校檢和(CRC-32)
下一篇:手機藍牙控制繼電器實驗
