⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task_messagetodata.c

📁 在Freescale16位单片机MC9s12dp256上移植了J1939源码和操作系统(ucOSII)。
💻 C
字号:
#include "Includes.h"

#include "PortAB.h"
#include "Types.h"
#include "J1939.h"
#include "JCanCntrl.h"
#include "JTimerDef.h"
#include "JTarget.h"
#include "JBuffer.h"
#include "J1939PGN.h"
#include "J1939TRA.h"
#include "J1939CFG.h"
#include "J1939EXT.h"
#include "Task_App.h"
#include "Graphics.h"
 
 

static APP_ENGINE_PARAMETER oEngParam;
void App_TriggerEngSpeed(unsigned int aValue);
void App_TriggerEngOilPress(unsigned int aValue);
void App_TriggerEngTemprature(unsigned int aValue);


static OS_STK  Task_MessageToData_STK[OS_STK_DEFAULT_SIZE];
#define Task_MessageToData_PRIO	0x11 //priority


void Task_MessageToData(void *pdata)
{
 unsigned char i;
 unsigned short TmpSpeed,TmpOilPress,TmpTemperature;
   
 #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
    OS_CPU_SR  cpu_sr;
    cpu_sr = 0;                                  /* Prevent compiler warning                           */
 #endif 
 oEngParam.oEngineSpeed=0;
 while(1){
   OS_ENTER_CRITICAL();
   TmpSpeed=EngSpeed;
   OS_EXIT_CRITICAL();
   if(oEngParam.oEngineSpeed!=TmpSpeed){
     //触发发动机转速表
     App_TriggerEngSpeed(TmpSpeed);
     oEngParam.oEngineSpeed=TmpSpeed;  
   }
   TmpOilPress=EngOilPres_p;
   TmpOilPress=100;
   if(oEngParam.oEngineFuel!=TmpOilPress){
     //触发发动机燃油压力表
     App_TriggerEngOilPress(TmpOilPress);
     oEngParam.oEngineFuel=TmpOilPress;	 
   }
   TmpTemperature=EngCoolant_t;
   if(oEngParam.oEngineTemperature!=TmpTemperature){
     //触发发动机冷却液温度表
     App_TriggerEngTemprature(TmpTemperature);
     oEngParam.oEngineTemperature=TmpTemperature; 
   }
   
   OSTimeDly(10);
  }/* while(1) */
  
}/*EndTask*/


void Task_MessageToData_Create(void)
{
	#if OS_TASK_CREATE_EXT_EN==1
		OSTaskCreateExt(Task_MessageToData,
			(void*)0,
			&Task_MessageToData_STK[OS_STK_DEFAULT_SIZE-1],
			Task_MessageToData_PRIO	,
			Task_MessageToData_PRIO	,
			&Task_MessageToData_STK[0],
			OS_STK_DEFAULT_SIZE,
			(void*) 0,
			OS_TASK_OPT_STK_CHK|OS_TASK_OPT_STK_CLR);
	#else
		OSTaskCreate(Task_MessageToData,
			(void*)0,
			&Task_MessageToData_STK[OS_STK_DEFAULT_SIZE-1],
			Task_MessageToData_PRIO);
	#endif		
}

//F004
void App_TriggerEngSpeed(unsigned int aValue){
  unsigned int tmpSpeed;
  tmpSpeed=aValue/8;
  vLcd_ClearRect(530,190,610,230,0x22);
  vLcd_GuageValue(350,225,0xf0,0x8e,tmpSpeed);
}

//FEEF
void App_TriggerEngOilPress(unsigned int aValue){
  unsigned int tmpOilPress;
  tmpOilPress=aValue*4;
  if(tmpOilPress<=1000)
  vLcd_OilGuageTValue(400,40,0xf0,0x8e,tmpOilPress,1000); 
}

//FEEE
void App_TriggerEngTemprature(unsigned int aValue){
  unsigned int tmpTemp;
  tmpTemp=aValue-40;
  vLcd_WaterGuageTValue(560,40,0xf0,0x8e,tmpTemp);		 
}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -