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

📄 drv_gps.c

📁 uCOS2 for 51系列
💻 C
📖 第 1 页 / 共 2 页
字号:
/*********************************************************************************************************
**				                       uC/OS 2 FOR PHILIP LPC21XX
**                                   The Real-Time Kernel(For ADS1.2)
**
**                                  
**                                                V0.00.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: Drv_GPS.C
**创   建   人: 龚树强
**最后修改日期: 2005年5月2日
**描        述: 串口0驱动程序
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 龚树强
** 版  本: V0.01.1
** 日 期: 2005年5月2日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


#include "..\source\Includes.h"

#include "..\driver\Drv_GPS\GPS_NMEA_RMC_Interpreter.h"
#include "..\driver\Drv_GPS\GPS_MOTO_Ea_Interpreter.h"

/*******************************************************************************
*********************			常	量	定	义			************************
********************************************************************************/
 
INT8U	GPS_NMEA_Type[][6]	= 	{
									{'G','P','G','G','L','L'},
									{'G','P','G','G','G','A'},
									{'G','P','G','V','T','G'},
									{'G','P','G','R','M','C'},
									{'G','P','G','G','S','A'},
									{'G','P','G','A','S','V'},
									{'0','0','0','0','0','0'},
									{'0','0','0','0','0','0'}
								};				  //注意:此处各个命令的排列要和头文件中的预编译定义一致
INT8U	GPS_MOTO_Type[][2]	= 	{
									{'E','a'},
									{'0','0'},
									{'0','0'},
									{'0','0'},
									{'0','0'},
									{'0','0'},
									{'0','0'},
									{'0','0'}
								};				  //注意:此处各个命令的排列要和头文件中的预编译定义一致
/*******************************************************************************
*********************			变	量	定	义			************************
********************************************************************************/
 
void		*GPS_RX_Buf[GPS_RX_BUF_SIZE];

OS_STK		STK_GPS_INTERPRETER[TASK_STK_SIZE/2];

OS_EVENT	*GPS_RX_Q;


GPS_CNTL	GpsCntl;

GPS_DATA	GpsData,gpsdata_buf;


INT8U 		current_state,seg_offset,checksum;

/*********************************************************************************************************
** 函数名称: GPS_On/Off
** 功能描述: GPS开关控制函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/ 

//#define		GPS_On()										\ 
//	rPINSEL2 &= 0xFFFFFFF7; 								\
//	rIO1DIR |= 1<<22;	/*P1.22为GPS电源控制,低电平有效*/	\
//	rIO1CLR	|= 1<<22  

//#define		GPS_Off()										\ 
//	rPINSEL2 &= 0xFFFFFFF7; 								\
//	rIO1DIR |= 1<<22;	/*P1.22为GPS电源控制,低电平有效*/	\
//	rIO1SET	|= 1<<22  

/*********************************************************************************************************
** 函数名称: GPS_Init
** 功能描述: GPS初始化函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/  

		void	GPS_Init(void)		reentrant
{
 	INT8U 	err;    
		
//	GPS_On();	
        		
    GPS_RX_Q = OSQCreate( GPS_RX_Buf,GPS_RX_BUF_SIZE );  	
    							
    OSTaskCreate( Task_GPS_Interpreter,  	            	/*create a test task*/
                  (void *)0,                        		/*parameter			*/
                  &STK_GPS_INTERPRETER[0],					/*BOS				*/
                  GPS_INTERPRETER_PRIO               		/*task prio			*/
                 );
                 
}

/*********************************************************************************************************
** 函数名称: GPS_NMEA_TypeCheck
** 功能描述: GPS NMEA格式类型检查函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/ 

		INT8U	GPS_NMEA_TypeCheck(INT8U rx,INT8U *prx_counter)			reentrant
{
	INT8U	cnt;
	static	INT8U	type_flag;
	INT8U	i;
	INT8U	flag;

	cnt = *prx_counter - GPS_NMEA_TYPE_SEG_OFFSET;

	if(!cnt)
		type_flag = 0xFF;
	else if(cnt > 6)
	{
		*prx_counter = 0;
		return 0;
	}
	flag = 0x01;

	checksum ^= rx;

	if(rx!=',')
	{
		for(i=0;i<8;flag<<=1,i++)
		{
		 	if(rx != GPS_NMEA_Type[i][cnt])
				type_flag &= (~flag);
		}
	}
	else
	{
		if(type_flag)
		{
			for(i=0;i<8;flag<<=1,i++)
			{
				if(type_flag & flag)
					return	i+1;	
			}
		}	
		else
			*prx_counter = 0;
	}
	return 0;			
}

/*********************************************************************************************************
** 函数名称: GPS_NMEA_GLL_Interpreter
** 功能描述: GPS NMEA格式GLL包解释函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/ 

 		void	GPS_NMEA_GLL_Interpreter(INT8U rx,INT8U *prx_counter)		reentrant
{
}
 		
/*********************************************************************************************************
** 函数名称: GPS_NMEA_GAA_Interpreter
** 功能描述: GPS NMEA格式GAA包解释函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/ 

 		void	GPS_NMEA_GAA_Interpreter(INT8U rx,INT8U *prx_counter)		reentrant
{
}
/*********************************************************************************************************
** 函数名称: GPS_NMEA_VTG_Interpreter
** 功能描述: GPS NMEA格式GLL包解释函数
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 龚树强
** 日 期: 2005年1月3日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/ 

 		void	GPS_NMEA_VTG_Interpreter(INT8U rx,INT8U *prx_counter)		reentrant
{
}

/*********************************************************************************************************

⌨️ 快捷键说明

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