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

📄 main.c

📁 SmartARM2400系列开发板全套资料
💻 C
📖 第 1 页 / 共 2 页
字号:
                世界调整时间: %s\r\n\
                世界日期: %s\r\n\
                纬度: %s\r\n\
                经度: %s\r\n\
                海拔高度: %s (meter)\r\n\
                卫星个数: %s\r\n\
                速度: %s\r\n\r\n", 
            
             GPS_DATA.UTC_Time,
             GPS_DATA.UTC_Date,
             GPS_DATA.Latitude,
             GPS_DATA.Longtitude,
             GPS_DATA.Altitude,
             GPS_DATA.SatelliteUsed,
             GPS_DATA.Speed);
                 
            OS_EXIT_CRITICAL();
            uart0SendStr(GcGpsData);
        #endif
            OSTimeDly(OS_TICKS_PER_SEC * 16);
        }
	}
}


/*********************************************************************************************************
** Function name:			TaskUART
** Descriptions:			UART display and post msg task
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			OSMboxCreate();OSMboxPost();uart0SendStr();
*********************************************************************************************************/
void TaskUART	(void *pdata)
{
	pdata = pdata;
	
    GprsBox = OSMboxCreate((void*)NULL);
    if (GprsBox == (OS_EVENT *)0) {
        while (1);                                                      /*  创建邮箱不成功,在此测试检查 */
    }
	
	while(1)
	{
        #if (!__GPS_DISPLAY_ENABLE) 
 
	    uint8 ucUartRcvByte;                                            /*  串口接收到的命令码          */

        if( GPRSGetState() == GPRS_IDLE) {								/*	GPRS状态空闲,初始化时间较长	*/
            
            uart0SendStr(GprsDisp);                                     /*  显示GPRS实验交互信息        */
            
            uart0SendStr("GPRS Module is OK, please choose the CMD to Test !\r\n");
            
            for (;;) {
                
                ucUartRcvByte = (uart0RcvByte() - '0');                 /*  注意串口接收数据为字符格式  */
                
                OSMboxPost(GprsBox, &ucUartRcvByte);					/*	发送命令码,以通知GPRS任务	*/
                uart0SendStr("\r\nThe CMD have been send to GPRS, please wait...\r\n");
        	    
        	    OSTimeDly(OS_TICKS_PER_SEC * 6);
            }
        }
        #endif
        OSTimeDly(OS_TICKS_PER_SEC);
	}	    
}

/*********************************************************************************************************
** Function name:			TaskGprsGpsRcv
** Descriptions:			GPRS / GPS Receive task
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			None
********************************************************************************************************/
void TaskGprsGpsRcv (void *pdata)
{
	uint8 err;
	
	pdata = pdata;

	OSTimeDly(OS_TICKS_PER_SEC * 10);
	
	while(1)
	{	
		OSSemPend(DuartRcv, OS_TICKS_PER_SEC/100, &err);				/*	等待信号量,但不阻塞			*/				
		GprsGpsRead();	                                                /*  接收数据并且保存到缓存中    */
	}	    
}

/*********************************************************************************************************
** Function name:			TaskGPRS
** Descriptions:			GPRS handle task
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			OSMboxPend();GPRSSendMSG();GPRSDialUp();...
*********************************************************************************************************/
void TaskGPRS	(void *pdata)
{
    	uint8 err;
    	uint8 tmp;
    	char  buffer[30];
    	uint8 *pucTestflag;		                                        /*  设定实验内容,参看下面的程序 */
static	uint8 ucGprsCmd;                                                /*  GPRS实验命令码暂存          */

	OSTimeDly(OS_TICKS_PER_SEC * 2);
	GPRSInit();                                                         /*  初始化GPRS                  */
	OSTimeDly(OS_TICKS_PER_SEC * 2);
	GPRSSetSpk(80);		                                                /*  设置喇叭的音量等级          */
	OSTimeDly(OS_TICKS_PER_SEC * 2);
	GPRSSetMic(0,6);	                                                /*  改变麦克风增益等级	        */
	OSTimeDly(OS_TICKS_PER_SEC * 2);

	pucTestflag = NULL;      
	
	while (1)
	{
		if( GPRSGetState() == GPRS_IDLE)
		{
			pucTestflag = (uint8 *)OSMboxPend(GprsBox, 0, &err);
			
			ucGprsCmd   = *pucTestflag;
			
			if(ucGprsCmd != 0)	{                                       /*  在此进行短信息,拨电话等实验	*/

				/* 
				 * 当为发送一条短信息,需要在启动一段时间之后才可以进行这个实验(建议在线调试,观察实验现象)
				 */
				switch(ucGprsCmd) {
				
					case 1: GPRSSetMSGCenter("+8613800571500");	        /*  设置短信息中心              */
							break;		
				    case 2: GPRSSendMSG("13430327182","I am Test GPRS&GPS.");	
							break;
					case 3: GPRSDialUp("13430327182");	                /*  拨打电话					*/
							break;		
					case 4:	tmp = GPRSGetSimMsgNum();	                /*  得到SIM卡可存储的短消息数量	*/
							break;
					case 5: GPRSViewMSGCenter(buffer);	                /*  查看短信息中心				*/
							break;		
					case 6: GPRSReadMSG(1,ShortMsg);	                /*	读取短消息					*/
							break;		
					case 7: GPRSDelMSG(1);	                            /* 	删除短信息					*/
							break;		
					default: break;
				}
			}
			RcvNoRequest();	                                            /*  处理模块主动提供的数据		*/
			/*
			if(csq_sec%30 == 0)
			{
				GPRSViewCSQ();
			}
			*/
		}
		OSTimeDly(OS_TICKS_PER_SEC);	                                /*	延时1秒钟					*/
	}	
}


/*********************************************************************************************************
** Function name:			TaskGPS
** Descriptions:			GPS handle task
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			OSSemPend();GPSAnalyse();uart0SendStr();
** Created by:				Yehaoben
** Created Date:			2005/06/02
********************************************************************************************************/
void TaskGPS	(void *pdata)
{
	uint8 err;

	OSTimeDly(OS_TICKS_PER_SEC * 10);
    
	while(1)
	{
		OSSemPend(GPSRcv,0,&err);                                       /*  等待接收完成信号            */
		if(err == OS_NO_ERR)
		{
			GPSAnalyse();
		}
	}
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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