亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4630|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

mpc5643l定時(shí)器捕捉測量頻率 系統(tǒng)初始化等源碼分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
包括mpc5643l的工程代碼

單片機(jī)源程序如下:

  1. /*************************************************************************
  2. 【平    臺(tái)】MPC5643L
  3. 【編    寫】
  4. 【版    本】V1.0
  5. 【時(shí)    間】
  6. 【功    能】1.通過8PIN撥碼開關(guān)輸入閾值轉(zhuǎn)速值("BM_INPUT.h");
  7.                         2.初始化系統(tǒng),包括看門狗、系統(tǒng)時(shí)鐘、外設(shè)時(shí)鐘、中斷初始化(MPC5643L_SysCtrl.h")
  8.                         3.gpio輸出電平控制led,報(bào)警和停機(jī)"TASK_LED.h"
  9.                         4.脈沖輸出功能"OPWM.h"
  10.                         5,轉(zhuǎn)速輸入測頻率,計(jì)算轉(zhuǎn)速,比較大小"TIMER_ECT.h"
  11.                         6,超速測試按鍵輸入函數(shù)Key_OVERSPEED.h                       
  12. *************************************************************************/
  13. /*******************頭文件******************/
  14. #include "MPC5643L.h"            
  15. #include "MPC5643L_SysCtrl.h"                                           //系統(tǒng)控制函數(shù)
  16. #include "TASK_LED.h"                                                   //GPIO輸出
  17. #include "Etimer_OutputPulseWidth.h"                      //脈沖輸出
  18.                                           

  19. #include "Key_OverspeedTest.h"                                      //超速測試復(fù)位鍵掃描                                   
  20. #include "TIMER_ECT.h"
  21. #include "FLEXCAN.h"
  22. #include "frequecythershord_input.h"                                //撥碼開關(guān)輸入函數(shù)
  23. #include "config_output.h"                                                        //GPIO輸出


  24. /****************全局變量定義**************/
  25. uint8_t compare(uint8_t num1,uint8_t num2)

  26. {
  27.         if(num1 < (uint8_t)(num2/2))
  28.         {
  29. //                init_OUTPUT(7,0);
  30.                 return 1;
  31.        
  32.         }
  33.        
  34.         else if(num1 > num2)
  35.         {
  36. //                init_OUTPUT(7,0);
  37.                 return 0;
  38.        
  39.         }
  40.        
  41.         else
  42.         {
  43. //                init_OUTPUT(7,0);
  44.                 return 2;

  45.         }
  46. }

  47. uint16_t main(void)
  48. {
  49.         uint8_t Result;                                                        //撥碼開關(guān)輸入pin配置
  50.         float temp_bm;                                                        //頻率閾值定義
  51.         uint8_t  Flag_HalfSpeedWSE;                                                                     //半速不停機(jī)測試標(biāo)志位
  52.         uint8_t  Flag_HalfSpeedSE;                                                                      //半速停機(jī)測試標(biāo)志位
  53.         uint8_t  Flag_OverSpeedWSE;                                                                     //超速不停機(jī)測試標(biāo)志位
  54.         uint8_t  Flag_OverSpeedSE;                                                                      //超速停機(jī)測試標(biāo)志位
  55.         InitSysCtrl();                                                        //初始化系統(tǒng)時(shí)鐘,中斷,看門狗,外設(shè)時(shí)鐘
  56.        
  57.         init_OUTPUT(7,1);
  58. //        init_OUTPUT(7,0);                                                //上電LED燈亮

  59.         init_OUTPUT(81,1);                                                //LED_green正常
  60.         init_OUTPUT(73,1);                                                //LED_red        超速報(bào)警
  61.        
  62.         init_OUTPUT(2,0);                                                //脈沖輸出,開始輸出低電平
  63.        
  64.         init_OUTPUT(128,1);                                                //out1
  65.         init_OUTPUT(125,1);                                                //out2
  66.         init_OUTPUT(124,1);                                                //csbh_bf_out
  67.         init_OUTPUT(121,1);                                                //out3
  68.         init_OUTPUT(119,1);                                                //out5
  69.         init_OUTPUT(117,1);                                     //out6

  70.         Init_BM_COFIG();                                                //撥碼開關(guān)輸入配置

  71.         InitEtimer1_3();
  72.        
  73.         INTC_InstallINTCInterruptHandler(ISRICEimer, Source_Etimer1_3, Priority);
  74.        
  75.         Init_opweTimer0();
  76.        
  77.         INTC_InstallINTCInterruptHandler(eTimer_OPWisr, Source_Etimer0_0, Priority);
  78.        
  79.         INTC.CPR_PRC0.R = 0;                                                                                                           //定義優(yōu)先級

  80.         InitCan1();
  81.        
  82.         InitCan0();

  83.         INTC_InstallINTCInterruptHandler(RecieveMsg,Source_Flexcan,Priority);        //開啟CAN_1接收中斷

  84.         ETIMER_1.CHANNEL[3].CCCTRL.B.ARM = 1;                                                                      //開始捕捉
  85.        
  86.         while(1)
  87.         {
  88.             float bj = 78;
  89.             
  90.             InputCaptureChannel3_FREQHandler();                                        //轉(zhuǎn)速處理函數(shù)

  91.                 temp_bm = threshold_value();
  92.                
  93.                 TransmitMsg();
  94. /*頻率比較,控制柴油機(jī)及報(bào)警功能*/
  95.                        
  96.                 temp_bm = threshold_value();
  97.                     
  98.                 Result = compare(bj,temp_bm);
  99.                
  100. /*測試按鍵輸入功能*/

  101.                 Skan_OverspeedPB1Key();                                                                                                  //掃描超速測試按鍵,進(jìn)行超速測試
  102.                
  103.                 Flag_OverSpeedWSE = OverspeedSystemTest_WithStopEngi();                       //超速測試不停機(jī)標(biāo)志       
  104.                 Flag_OverSpeedSE = OverspeedSystemTest_EngineStopeed();                       //超速停機(jī)測試標(biāo)志
  105.                 Flag_HalfSpeedWSE = HalfSpeedTest_WithoutStoppingEngineKeep();                //半速不停機(jī)測試標(biāo)志
  106.                 Flag_HalfSpeedSE = HalfSpeedTest_EngineStopeed();
  107. //                Skan_Key();                                        //掃描超速測試按鍵
  108. //                csfw_test();                //超速復(fù)位測試程序
  109. //                csbtj_test();               //超速不停機(jī)測試程序
  110. //                bsbtj_test();               //半速不停機(jī)測試程序
  111. //                bstj_test();                //半速停機(jī)測試程序
  112.                 switch(Result)
  113.                 {
  114.                         case 1:
  115.                                 if(Flag_OverSpeedWSE)                                                                                        // self-checking:超速測試不停機(jī)
  116.                                 {
  117.                                         SwitchOverspeedOut_WithoutStoppingEngine();                                        //不停機(jī)測試程序
  118.                                                                                
  119.                                 }
  120.                                        
  121.                                 if(Flag_OverSpeedSE)                                                                                        // self-checking:超速測試停機(jī)
  122.                                 {
  123.                                         SwitchOverspeedOut_EngineStopeed();                                                 //停機(jī)測試程序
  124.                                                                 
  125.                                                
  126.                                 }
  127.                                        
  128.                        
  129.                                 PressAfterFaultTest_Reset();                                                                   //超速保護(hù)復(fù)位測試,停機(jī)報(bào)警復(fù)位函數(shù)
  130.                                                                                                                                             //復(fù)位故障檢測函
  131.                                
  132.                                 if((Flag_OverSpeedWSE | Flag_OverSpeedSE | Flag_HalfSpeedWSE |Flag_HalfSpeedSE) == 0)        //無超速測試按鍵按下
  133.                                 {
  134.                                         SwitchOverspeedOut_EngineStopeed();                                                                                                        //停機(jī)測試程序
  135.                                                                                                                             
  136.                                 }
  137.                                        
  138.                                 break;
  139.                        

  140.                         case 0:
  141.                                 if(Flag_HalfSpeedWSE)                                                                                                                                        //self-checking:測試不停機(jī)
  142.                                 {
  143.                                         SwitchOverspeedOut_WithoutStoppingEngine();                                                                                        //不停機(jī)測試程序       
  144.                                 //        Inspection_WithStopEngi();                                                                                                          //不停機(jī)測試故障檢測函數(shù)
  145.                                 }
  146.                                
  147.                                        
  148.                                 if(Flag_HalfSpeedSE)                                                                                                                                        //self-checking:測試停機(jī)
  149.                                 {
  150.                                         SwitchOverspeedOut_EngineStopeed();                                                                                                        //停機(jī)測試程序
  151.                                 //        Inspection_StopEngi();                                                                                                                  //停機(jī)測試故障檢測函數(shù)
  152.                                 }
  153.                                        
  154.                                 PressAfterFaultTest_Reset();                                                                                                                        //超速保護(hù)復(fù)位測試,停機(jī)報(bào)警復(fù)位函數(shù)
  155.                                
  156.                                 if((Flag_OverSpeedWSE | Flag_OverSpeedSE | Flag_HalfSpeedWSE |Flag_HalfSpeedSE) == 0)        //無超速測按鍵按下
  157.                                 {
  158.                                         SwitchOverspeedOut_EngineStopeed();                                                                                                        //停機(jī)測試程序
  159.                                 //        Inspection_StopEngi();                                                                                                                          //停機(jī)測試故障檢測函數(shù)
  160.                                 }       
  161.                                
  162.                                 break;                                                //停機(jī)測試程序

  163.        
  164.                         case 2:
  165.                                 SystemInWorking0rder();                        //正常運(yùn)行
  166.                                 break;
  167.                  
  168.                   }
  169.        
  170.         }
  171. ……………………

  172. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
mpc5643l_test.zip (275.48 KB, 下載次數(shù): 15)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表