包括mpc5643l的工程代碼
0.png (37.31 KB, 下載次數: 37)
下載附件
2018-7-6 04:53 上傳
單片機源程序如下:
- /*************************************************************************
- 【平 臺】MPC5643L
- 【編 寫】
- 【版 本】V1.0
- 【時 間】
- 【功 能】1.通過8PIN撥碼開關輸入閾值轉速值("BM_INPUT.h");
- 2.初始化系統,包括看門狗、系統時鐘、外設時鐘、中斷初始化(MPC5643L_SysCtrl.h")
- 3.gpio輸出電平控制led,報警和停機"TASK_LED.h"
- 4.脈沖輸出功能"OPWM.h"
- 5,轉速輸入測頻率,計算轉速,比較大小"TIMER_ECT.h"
- 6,超速測試按鍵輸入函數Key_OVERSPEED.h
- *************************************************************************/
- /*******************頭文件******************/
- #include "MPC5643L.h"
- #include "MPC5643L_SysCtrl.h" //系統控制函數
- #include "TASK_LED.h" //GPIO輸出
- #include "Etimer_OutputPulseWidth.h" //脈沖輸出
-
- #include "Key_OverspeedTest.h" //超速測試復位鍵掃描
- #include "TIMER_ECT.h"
- #include "FLEXCAN.h"
- #include "frequecythershord_input.h" //撥碼開關輸入函數
- #include "config_output.h" //GPIO輸出
- /****************全局變量定義**************/
- uint8_t compare(uint8_t num1,uint8_t num2)
- {
- if(num1 < (uint8_t)(num2/2))
- {
- // init_OUTPUT(7,0);
- return 1;
-
- }
-
- else if(num1 > num2)
- {
- // init_OUTPUT(7,0);
- return 0;
-
- }
-
- else
- {
- // init_OUTPUT(7,0);
- return 2;
- }
- }
- uint16_t main(void)
- {
- uint8_t Result; //撥碼開關輸入pin配置
- float temp_bm; //頻率閾值定義
- uint8_t Flag_HalfSpeedWSE; //半速不停機測試標志位
- uint8_t Flag_HalfSpeedSE; //半速停機測試標志位
- uint8_t Flag_OverSpeedWSE; //超速不停機測試標志位
- uint8_t Flag_OverSpeedSE; //超速停機測試標志位
- InitSysCtrl(); //初始化系統時鐘,中斷,看門狗,外設時鐘
-
- init_OUTPUT(7,1);
- // init_OUTPUT(7,0); //上電LED燈亮
- init_OUTPUT(81,1); //LED_green正常
- init_OUTPUT(73,1); //LED_red 超速報警
-
- init_OUTPUT(2,0); //脈沖輸出,開始輸出低電平
-
- init_OUTPUT(128,1); //out1
- init_OUTPUT(125,1); //out2
- init_OUTPUT(124,1); //csbh_bf_out
- init_OUTPUT(121,1); //out3
- init_OUTPUT(119,1); //out5
- init_OUTPUT(117,1); //out6
- Init_BM_COFIG(); //撥碼開關輸入配置
- InitEtimer1_3();
-
- INTC_InstallINTCInterruptHandler(ISRICEimer, Source_Etimer1_3, Priority);
-
- Init_opweTimer0();
-
- INTC_InstallINTCInterruptHandler(eTimer_OPWisr, Source_Etimer0_0, Priority);
-
- INTC.CPR_PRC0.R = 0; //定義優先級
- InitCan1();
-
- InitCan0();
- INTC_InstallINTCInterruptHandler(RecieveMsg,Source_Flexcan,Priority); //開啟CAN_1接收中斷
- ETIMER_1.CHANNEL[3].CCCTRL.B.ARM = 1; //開始捕捉
-
- while(1)
- {
- float bj = 78;
-
- InputCaptureChannel3_FREQHandler(); //轉速處理函數
- temp_bm = threshold_value();
-
- TransmitMsg();
- /*頻率比較,控制柴油機及報警功能*/
-
- temp_bm = threshold_value();
-
- Result = compare(bj,temp_bm);
-
- /*測試按鍵輸入功能*/
- Skan_OverspeedPB1Key(); //掃描超速測試按鍵,進行超速測試
-
- Flag_OverSpeedWSE = OverspeedSystemTest_WithStopEngi(); //超速測試不停機標志
- Flag_OverSpeedSE = OverspeedSystemTest_EngineStopeed(); //超速停機測試標志
- Flag_HalfSpeedWSE = HalfSpeedTest_WithoutStoppingEngineKeep(); //半速不停機測試標志
- Flag_HalfSpeedSE = HalfSpeedTest_EngineStopeed();
- // Skan_Key(); //掃描超速測試按鍵
- // csfw_test(); //超速復位測試程序
- // csbtj_test(); //超速不停機測試程序
- // bsbtj_test(); //半速不停機測試程序
- // bstj_test(); //半速停機測試程序
- switch(Result)
- {
- case 1:
- if(Flag_OverSpeedWSE) // self-checking:超速測試不停機
- {
- SwitchOverspeedOut_WithoutStoppingEngine(); //不停機測試程序
-
- }
-
- if(Flag_OverSpeedSE) // self-checking:超速測試停機
- {
- SwitchOverspeedOut_EngineStopeed(); //停機測試程序
-
-
- }
-
-
- PressAfterFaultTest_Reset(); //超速保護復位測試,停機報警復位函數
- //復位故障檢測函
-
- if((Flag_OverSpeedWSE | Flag_OverSpeedSE | Flag_HalfSpeedWSE |Flag_HalfSpeedSE) == 0) //無超速測試按鍵按下
- {
- SwitchOverspeedOut_EngineStopeed(); //停機測試程序
-
- }
-
- break;
-
- case 0:
- if(Flag_HalfSpeedWSE) //self-checking:測試不停機
- {
- SwitchOverspeedOut_WithoutStoppingEngine(); //不停機測試程序
- // Inspection_WithStopEngi(); //不停機測試故障檢測函數
- }
-
-
- if(Flag_HalfSpeedSE) //self-checking:測試停機
- {
- SwitchOverspeedOut_EngineStopeed(); //停機測試程序
- // Inspection_StopEngi(); //停機測試故障檢測函數
- }
-
- PressAfterFaultTest_Reset(); //超速保護復位測試,停機報警復位函數
-
- if((Flag_OverSpeedWSE | Flag_OverSpeedSE | Flag_HalfSpeedWSE |Flag_HalfSpeedSE) == 0) //無超速測按鍵按下
- {
- SwitchOverspeedOut_EngineStopeed(); //停機測試程序
- // Inspection_StopEngi(); //停機測試故障檢測函數
- }
-
- break; //停機測試程序
-
- case 2:
- SystemInWorking0rder(); //正常運行
- break;
-
- }
-
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
mpc5643l_test.zip
(275.48 KB, 下載次數: 15)
2018-7-5 21:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|