欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)工控事件

汽車電子技術(shù) ? 來源:工控碼農(nóng) ? 作者:工控碼農(nóng) ? 2023-02-07 09:40 ? 次閱讀

單片機(jī)工控通常有延時(shí),電機(jī)狀態(tài),傳感器狀態(tài)等通用耗時(shí)操作,業(yè)務(wù)程序查詢這些狀態(tài),就會(huì)產(chǎn)生大量的冗余代碼,不簡潔.使用事件則是把這些通用操作丟給系統(tǒng)去處理,系統(tǒng)操作完成后,則運(yùn)行業(yè)務(wù)程序的下一個(gè)Step.

** 延時(shí)不使用事件**

switch(step)
{
  case STEP1:
    baseTime = systemTime;
    step= STEP2;
    break;
   case STEP2:
   if(systemTime>(baseTime+500))
   {
     ..
   }
   break;
}

延時(shí)使用事件:

switch(step)
{
  case STEP1:
  WaitTime(500,STEP2);  //向系統(tǒng)請求延時(shí)500ms,讓出程序運(yùn)行權(quán)限,500ms后運(yùn)行到STEP2
  break;
  
  case STEP2:
  break;
}

不使用事件查詢傳感器狀態(tài)

switch(step)
{
  case STEP1:
  if(IsSensorOn(X01))
  {
    StopSM(SM101);
  }
  break;
}

使用事件的查詢傳感器狀態(tài)

switch(step)
{
  case STEP1:
  //向系統(tǒng)請求查詢傳感器X101,傳感器感應(yīng)后跳到STEP2
  WaitSensorOn(X101,STEP2);
  break;
}

不使用事件的電機(jī)運(yùn)動(dòng)

switch(step)
{
  case STEP1:
  RunSM(SM101,2000);  //SM101運(yùn)行2000步
  step = STEP2;
  break;
  case STEP2:
  if(IsSMStop(SM101))
  {

  }
}

使用事件的電機(jī)運(yùn)動(dòng)

switch(step)
{
  case STEP1:
  RunSM(SM101,2000);
  //請求系統(tǒng)查詢電機(jī)狀態(tài)
  WaitSM(SM101,STEP2);
  break;
}

沒有使用事件的找傳感器的電機(jī)運(yùn)動(dòng)

switch(step)
{
  case STEP1:
  RunSM(SM101,2000);
  step = STEP2;
  break;
  case STEP2:
  if(IsSensorOn(X101))
  {
    StopSM(SM101);
    return 1;
  }
  else if(IsSMStop(SM101))
  {
    return -1;
  }
  
  }

使用事件的找傳感器電機(jī)運(yùn)動(dòng)

switch(step)
{
  case STEP1:
  //電機(jī)運(yùn)動(dòng)2000步,請求傳感器狀態(tài) 電機(jī)事件
  FindSensor(SM101,2000,X101,STEP2,STEP_ERROR);
  break;
  case STEP2:
  SetActionOk();
  break;

  case STEP_ERROR:
  SetError("SM101電機(jī)丟步-SM101/X101");
  break;
}
從上面的案例可以看出使用事件的程序幾乎沒有if else 程序更加口語化.事件實(shí)現(xiàn)的基本原理為:
  1. 把事件的參數(shù)(事件類型,延時(shí)時(shí)間,電機(jī)編號,電機(jī)步數(shù),傳感器編號)壓入任務(wù)棧,下一步驟也就是PC指針也壓入任務(wù)棧。
  2. 讓出業(yè)務(wù)程序的運(yùn)行權(quán)限到系統(tǒng)的通用事件運(yùn)行,實(shí)現(xiàn)方式運(yùn)行的函數(shù)指針指向事件處理的函數(shù)
  3. 事件處理程序查詢相應(yīng)的狀態(tài)變化
  4. 運(yùn)行權(quán)限重新切回業(yè)務(wù)程序,運(yùn)行函數(shù)指針指向業(yè)務(wù)函數(shù)指針,Step出棧.
//切換到事件處理函數(shù)
CurrentAction->ActionCallback = CurrentAction->EventCallback;


//系統(tǒng)循環(huán)
while(CurrentAction!=NULL)
 {
    CurrentAction->ActionCallback();
    DelFinishAction();
    CurrentAction = CurrentAction->NextAction;
 }  
 
 //切回業(yè)務(wù)App
 ThisAction->nStep = nStep;
 ThisAction->ActionCallback = ThisAction->AppCallBack
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51427

    瀏覽量

    756773
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44623

    瀏覽量

    638773
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4830

    瀏覽量

    69090
  • step
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    20529
收藏 人收藏

    評論

    相關(guān)推薦

    專注單片機(jī)工控編程開發(fā)#步控電子#步驟編程#單片機(jī) #單片機(jī)開發(fā)

    單片機(jī)
    東莞市步控電子科技有限公司
    發(fā)布于 :2022年08月03日 22:55:10

    單片機(jī)工控

    ,指示燈,計(jì)數(shù)器,撥碼開關(guān))如果用PLC成本太高,即使時(shí)最入門的也不是太合算,而且還需要自備24V開關(guān)電源,對配線也是個(gè)難題,就有這個(gè)一個(gè)想法,可對單片機(jī)了解甚少,還望對如上所列給予指點(diǎn)1.能否實(shí)現(xiàn)2.開發(fā)這個(gè)通用的班子費(fèi)用和周期3.有意向合作開發(fā)的mail至:[email protected]
    發(fā)表于 03-18 14:31

    超齊全單片機(jī)工具集

    超齊全單片機(jī)工具集單片機(jī)工
    發(fā)表于 11-03 16:49 ?155次下載

    超級單片機(jī)工具軟件

    電子發(fā)燒友網(wǎng)站提供《超級單片機(jī)工具軟件.exe》資料免費(fèi)下載
    發(fā)表于 07-13 17:49 ?26次下載

    8051單片機(jī)工作原理介紹

    8051單片機(jī)工作原理 8051單片機(jī)工作原理
    發(fā)表于 10-28 11:19 ?43次下載

    單片機(jī)初學(xué)者邁向單片機(jī)工程師

    單片機(jī)初學(xué)者邁向單片機(jī)工程師從單片機(jī)初學(xué)者邁向單片機(jī)工程師
    發(fā)表于 01-15 16:33 ?45次下載

    單片機(jī)工具大全

    收藏的單片機(jī)工具,分享出來
    發(fā)表于 02-15 23:04 ?20次下載

    單片機(jī)工控常用IC—sn74lvc07a資料下載.pdf

    單片機(jī),工控常用IC
    發(fā)表于 05-25 15:46 ?6次下載

    實(shí)用單片機(jī)工具應(yīng)用程序合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是超級單片機(jī)工具軟件應(yīng)用程序合集免費(fèi)下載包括了:51波特率計(jì)算應(yīng)用程序,超級單片機(jī)工具軟件,單片機(jī)小精靈。
    發(fā)表于 04-28 16:24 ?33次下載
    實(shí)用<b class='flag-5'>單片機(jī)工</b>具應(yīng)用程序合集免費(fèi)下載

    MSP430單片機(jī)工程配置driverlib庫

    MSP430單片機(jī)工程配置driverlib庫
    發(fā)表于 11-19 16:36 ?22次下載
    MSP430<b class='flag-5'>單片機(jī)工</b>程配置driverlib庫

    單片機(jī)工控應(yīng)用

    電機(jī)狀態(tài) 傳感器狀態(tài) 時(shí)間狀態(tài)都是系統(tǒng)管理查詢的,極大的提高了代碼的復(fù)用,因?yàn)橐粋€(gè)項(xiàng)目一般都有幾十個(gè)動(dòng)作動(dòng)作函數(shù).
    的頭像 發(fā)表于 02-07 09:34 ?681次閱讀

    單片機(jī)工控實(shí)現(xiàn)任務(wù)執(zhí)行管理

    前面寫了switch case做任務(wù)調(diào)度的應(yīng)用,這邊寫一下如何實(shí)現(xiàn).像一般的RTOS一樣都有一個(gè)任務(wù)控制塊(TCB)列表來管理所有的任務(wù),所以這里也需要一個(gè)結(jié)構(gòu)體來管理動(dòng)作任務(wù),這里叫做ACB吧.
    的頭像 發(fā)表于 02-07 09:37 ?922次閱讀

    單片機(jī)工控的電機(jī)減速算法是什么?

    單片機(jī)給步進(jìn)驅(qū)動(dòng)一個(gè)脈沖,電機(jī)轉(zhuǎn)動(dòng)一個(gè)步距角,單片機(jī)給脈沖越快,步進(jìn)電機(jī)單位時(shí)間內(nèi),轉(zhuǎn)動(dòng)的角度也就越大.即脈沖頻率正比于電機(jī)轉(zhuǎn)速.
    的頭像 發(fā)表于 02-07 09:43 ?1694次閱讀
    <b class='flag-5'>單片機(jī)工控</b>的電機(jī)減速算法是什么?

    單片機(jī)工控的工程分離是什么?

    單片機(jī)電路板一般專有的,如汽車的車燈控制電路板和EPS控制的電路板是完全不同的。專有的電路板,軟件就比較難通用,軟件編程比較強(qiáng)調(diào)的是單片機(jī)系統(tǒng)。
    的頭像 發(fā)表于 02-07 09:47 ?1005次閱讀
    <b class='flag-5'>單片機(jī)工控</b>的工程分離是什么?

    51單片機(jī)工程模板創(chuàng)建方法

    本教程將向大家介紹如何使用KEIL C51 軟件以及如何創(chuàng)建51 單片機(jī)工程。通過本教程的學(xué)習(xí),讓大家創(chuàng)建屬于自己的51 單片機(jī)工程模板,為后面學(xué)習(xí)51 單片機(jī)編程做好鋪墊。
    發(fā)表于 07-15 15:27 ?4994次閱讀
    51<b class='flag-5'>單片機(jī)工</b>程模板創(chuàng)建方法