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

📄 main.c

📁 SmartARM2400系列开发板全套资料
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c)****************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		V1.00
** Descriptions:		The main() function example template
**
**--------------------------------------------------------------------------------------------------------
** Created by:			谢陆伟
** Created date:		2007-07-24
** Version:				V1.00
** Descriptions:		The original version
**
**--------------------------------------------------------------------------------------------------------
** Created by:			顾满洲
** Created date:		2008-07-28
** Version:				V1.01
** Descriptions:        1.移植到SmartARM2400平台,注意修正地址,更改实验环境时要修正SC16C和MinISA基地址、总线
**						的初始化、MinISA的初始化.
**                      2.由于实验为初级代码,在线调试的方式观察实验现象.
**                      3.适合在外部Flash(DebugInExFlash).
**                      4.做GPS实验接收卫星信号时间较长和做GPRS实验时初始化时间较长.
*********************************************************************************************************/
#include "main.h"														/*	本文件头文件				*/

/*
*   当__GPS_DISPLAY_ENABLE定义为"0"时,做GPRS实验,定义为"1"时做GPS实验
*/
#define  __GPS_DISPLAY_ENABLE 	0										/*	GPRS/GPS串口显示选择		*/

char  		GcGpsData[200] 	= {0};										/*	GPS接收数据显示缓存			*/
OS_EVENT   *GprsBox			= NULL;										/*	GPRS消息邮箱指针			*/
	
char GprsDisp[] = 														/*	GPRS/串口界面交互信息数组	*/

"\r\n*********************** GPRS Test Choose CMD ***********************\r\n\
     (Notice: 信息内容及SIM卡号码,皆应先在代码中设定,\r\n\
              此实验只从串口接收命令码,并传递给GPRS任务进行处理.)\r\n\r\n\
	   CMD	  	Functions description\r\n\
	  ------------------------------------------------\r\n\
		1. 	设置短信息中心, 如: +8613800200500 \r\n\
		2. 	发送一条短信息 \r\n\
		3. 	拨打电话\r\n\
	  ------------------------------------------------\r\n";

/*********************************************************************************************************
**	任务参数
*********************************************************************************************************/
#define TaskCreate_ID			15      								/*  创建其他任务的任务ID		*/
#define TaskCreate_PRIO			TaskCreate_ID							/*  任务的优先级				*/
#define TaskCreate_STACK_SIZE	256     								/*  定义用户堆栈长度 			*/  

#define TaskRcv_ID				16      								/*  GPRS/GPS接收数据任务的ID	*/
#define TaskRcv_PRIO			TaskRcv_ID								/*  任务的优先级				*/
#define TaskRcv_STACK_SIZE		512     								/*  定义用户堆栈长度 			*/   
   
#define TaskGPRS_ID				17										/*  GPRS任务的ID				*/
#define TaskGPRS_PRIO			TaskGPRS_ID								/*  任务的优先级				*/
#define TaskGPRS_STACK_SIZE		512										/*  定义用户堆栈长度 			*/  

#define TaskGPS_ID				18										/*  GPS任务的ID					*/
#define TaskGPS_PRIO			TaskGPS_ID								/*  任务的优先级				*/
#define TaskGPS_STACK_SIZE		256										/*  定义用户堆栈长度 			*/  

#define TaskUART_ID				19      								/*  串口交互界面显示任务的ID	*/
#define TaskUART_PRIO			TaskUART_ID								/*  任务的优先级				*/
#define TaskUART_STACK_SIZE		512     								/*  定义用户堆栈长度 			*/  


OS_STK  TaskCreate_STACK[TaskCreate_STACK_SIZE];						/*	创建其他任务的任务	 堆栈	*/
OS_STK  TaskRcv_STACK[TaskRcv_STACK_SIZE];								/*	GPRS/GPS接收数据任务 堆栈	*/
OS_STK  TaskGPRS_STACK[TaskGPRS_STACK_SIZE];							/*	GPRS任务			 堆栈	*/
OS_STK  TaskGPS_STACK[TaskGPS_STACK_SIZE];								/*	GPS任务				 堆栈	*/
OS_STK  TaskUART_STACK[TaskUART_STACK_SIZE];							/*	串口交互界面显示任务 堆栈	*/

/*********************************************************************************************************
** Function name: void gprsGpsSysInit(void) 
** Descriptions:  Gprs/Gps target system initialize.
** Input:         none
** Output:        none 
*********************************************************************************************************/
void gprsGpsSysInit(void)
{
    EMCInit(); 															/*	初始化外部总线				*/ 
    MISAInit();													    	/*	初始化MiniISA总线接口		*/
    uart0Init(9600);													/*	初始化LPC2400串口0			*/
    InitSC16C();		                                                /*  初始化硬件接口              */
	GPSInit();			                                                /*  初始化GPS                   */
}

/*********************************************************************************************************
** Function name:			main
** Descriptions:			the main function.
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			None
*********************************************************************************************************/
int main (void)
{
    OSInit(); 
    OSTaskCreateExt(TASKCreate,										    /*	创建启动任务				*/
                    (void *)0,
                    &TaskCreate_STACK[TaskCreate_STACK_SIZE - 1],
                    TaskCreate_PRIO,
                    TaskCreate_ID,
                    &TaskCreate_STACK[0],
                    TaskCreate_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); 
    OSStart();                                       
}
		
/*********************************************************************************************************
** Function name:			TASKCreate
** Descriptions:			Create others task 's task
** input parameters:		None
** Returned value:			None
** Used global variables:	None
** Calling modules:			TargetInit();gprsGpsSysInit();
*********************************************************************************************************/
void TASKCreate (void *pdata)
{
	pdata = pdata;
#if OS_CRITICAL_METHOD == 3				                    			
    OS_CPU_SR  cpu_sr;
#endif	
    TargetInit(); 														/*	初始化目标环境				*/  													  
    
    BUZZER_Set();
	OSTimeDly(OS_TICKS_PER_SEC/10);
	BUZZER_Clr();
	OSTimeDly(OS_TICKS_PER_SEC/10);
	
	BUZZER_Set();
	OSTimeDly(OS_TICKS_PER_SEC/10);
	BUZZER_Clr();
	OSTimeDly(OS_TICKS_PER_SEC/5);
	
	gprsGpsSysInit();	                                                /*  GPRS/GPS系统初始化          */

	OSTaskCreateExt(TaskGprsGpsRcv,									    /*	创建各个任务				*/
                    (void *)0,
                    &TaskRcv_STACK[TaskRcv_STACK_SIZE-1],
                    TaskRcv_PRIO,
                    TaskRcv_ID,
                    &TaskRcv_STACK[0],
                    TaskRcv_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
    
    OSTaskCreateExt(TaskGPRS,
                    (void *)0,
                    &TaskGPRS_STACK[TaskGPRS_STACK_SIZE-1], 
                    TaskGPRS_PRIO,
                    TaskGPRS_ID,
                    &TaskGPRS_STACK[0],
                    TaskGPRS_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
                     
    OSTaskCreateExt(TaskGPS,
                    (void *)0,
                    &TaskGPS_STACK[TaskGPS_STACK_SIZE-1],
                    TaskGPS_PRIO,
                    TaskGPS_ID,
                    &TaskGPS_STACK[0],
                    TaskGPS_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); 
                    
    OSTaskCreateExt(TaskUART,
                    (void *)0,
                    &TaskUART_STACK[TaskUART_STACK_SIZE-1],
                    TaskUART_PRIO,
                    TaskUART_ID,
                    &TaskUART_STACK[0],
                    TaskUART_STACK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);  
  	while (1)
	{	
		OSTimeDly(OS_TICKS_PER_SEC * 2);
        while(1)
        {
        #if __GPS_DISPLAY_ENABLE
            OS_ENTER_CRITICAL();
            sprintf (GcGpsData,                                         /*  调整数据格式,送串口0显示    */
        
            "\r\n****** 当前GPS数据如下: ******\r\n\r\n\

⌨️ 快捷键说明

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