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

📄 main.c

📁 飞思卡尔08单片机程序
💻 C
字号:
/*******************************************************************
  \poject     	智能车底层驱动器(油门部分)
  \author   	young
  \author     	北京理工大学
  \version   	1.1
  \date     	2009/5/3

  * History:
  
  2009/4/28      Start of aplication coding
 
*********************************************************************/
/* Include Files */
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908GZ16.h> /* include peripheral declarations */
#include "Sci.h"
#include "Type.h"
#include "MSCAN08.h"
#include "MCU.h"
#include "MotorCmd.h"

/*Defines */
#define PID
/* Local Variables */
UINT16 CmdWheelAngle;
UINT8  CmdCarSpeed,CmdCarDir,CmdBreakRapid,StateSensor,CheckByHost;

UINT16 StateLeftAngle,StateRightAngle;
UINT8 StateCarSpeed,StateCarDir,StateBreakRapid,CheckByHub;

/* Prototypes */ 
void MCUInit(void);
void CtrlAcc(void);
void HubDecode(void);


void main(void) {
 MCUInit();/* System Initalization */
 EnableInterrupts; /* enable interrupts */
  
  for(;;) {/* Main Loop */
  	 __RESET_WATCHDOG(); /* kicks the dog */
  // if (CanRxFlag==1){
   		HubDecode();
   		//CtrlAcc();//对油门进行控制
   		//SciTxEnable;
   	//	CanRxFlag=0;
   //   }
    
	
  } /* loop forever */
}


void MCUInit(void){
	DisableInterrupts;
	PCTL = 0x00;         //禁止锁相环
	CONFIG1=0x09; //初始化配置
	CONFIG2=0x08;	//MSCAN ENABLE ,SCI source =8M
	MSCAN08Init();
	SCIInit();
	TIM1Init();
	IOInit(); 

}


/*****************************************************************************
 * SendMsg: 对电机进行PID控制
 * Input: 	None
 * Output: None
 * Parameters: None
 *
 ****************************************************************************/
void CtrlAcc(void){
	#ifdef PID
		UINT8 p=3,i=0,d=0;
		UINT8 speed_error=CmdCarSpeed-StateCarSpeed;
		if (speed_error>0)
		
			SendCmd(LA_FORWARD,1000);
		else 
			SendCmd(LA_FORWARD,0);

	#else

	#endif

}
/*****************************************************************************
 * SendMsg: 对路由发送过来的指令进行解码
 * Input: 	None
 * Output: None
 * Parameters: None
 *
 ****************************************************************************/
void HubDecode(void){



	if(MessageID_Real==ID_Cmd_CarSpeed){
	
	CmdCarSpeed=CAN_RX_Data[0];
	}

	if(MessageID_Real==ID_Cmd_WheelAngle){
	
	
	CmdWheelAngle=(CAN_RX_Data[0]<<8)+CAN_RX_Data[1];

	StateSensor=CAN_RX_Data[2];
	}

	if(MessageID_Real==ID_Cmd_BreakRapid){

	CmdBreakRapid=CAN_RX_Data[0];
	}


}


⌨️ 快捷键说明

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