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

📄 main.c.bak

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 BAK
字号:
/******************************************************************************
MODE:		AML--#GPS+accelerator+compass
MCU:		Cyan eCOG1k
COMPILER:	CyanIDE v1.41
FILE NAME:	main C source code files
******************************************************************************/
#define main_code

/******************************************************************************
Project level include files.
******************************************************************************/
#include <ecog.h>
#include <ecog1.h>
#include "gps.h"
#include "key_scan.h"
#include "cyan_base_driver.h"

/******************************************************************************
Global variables.
******************************************************************************/
unsigned int	led_timer_count = 0;
unsigned int	a_baud_save = 162;

char			send_latitude[10];
char			send_latitude_aspect[2];
char			send_longitude[11];
char			send_longitude_aspect[2];
char			send_antenna_height[9];
char			send_gps_state[2];
/******************************************************************************
Private constants and types.
******************************************************************************/
#define RESPONSE_TIME		50//ms

/******************************************************************************
Declaration of static functions.
******************************************************************************/


/******************************************************************************
main functions.
******************************************************************************/
int main(int argc, char* argv[])
{
	unsigned int i;
	
	timer_initialization();
	uart_initialization();
	gps_initialization();
	
	fd.tim.int_en1.cnt2_exp = 1;		//enable timer2 interrupt.

	rg.io.gp0_3_out = IO_GP0_3_OUT_CLR0_MASK;// | IO_GP0_3_OUT_SET0_MASK;
	
	while(1)
	{	
		if(GPS_RECEIVE_DONE_FLAG)
		{
			GPS_RECEIVE_DONE_FLAG = 0;
			for(i = 0;i < 2;i++)
			{
				send_gps_state[i] = GPGSA.position_MSG[i];
				if(send_gps_state[i] == ',')
					send_gps_state[i] = 0;
			}
			for(i = 0;i < 10;i++)
			{
				send_latitude[i] = GPGGA.latitude[i];
				if(send_latitude[i] == ',')
					send_latitude[i] = 0;
			}
			for(i = 0;i < 2;i++)
			{
				send_latitude_aspect[i] = GPGGA.latitude_aspect[i];
				if(send_latitude_aspect[i] == ',')
					send_latitude_aspect[i] = 0;
			}
			for(i = 0;i < 11;i++)
			{
				send_longitude[i] = GPGGA.longitude[i];
				if(send_longitude[i] == ',')
					send_longitude[i] = 0;
			}
			for(i = 0;i < 2;i++)
			{
				send_longitude_aspect[i] = GPGGA.longitude_aspect[i];
				if(send_longitude_aspect[i] == ',')
					send_longitude_aspect[i] = 0;
			}
			for(i = 0;i < 9;i++)
			{
				send_antenna_height[i] = GPGGA.antenna_height[i];
				if(send_antenna_height[i] == ',')
					send_antenna_height[i] = 0;
			}
		}
		
		
		if(key_scan() == KEY1_PRESS)
		{
			
			printf("AT+CMGF=1\r\n");
			delay_ms(RESPONSE_TIME);
			
			printf("AT+CSCS=\"GSM\"\r\n");
			delay_ms(RESPONSE_TIME);
			
			printf("AT+CSCA=\"+86XXXXXXXX\",145\r\n");
			delay_ms(RESPONSE_TIME);
			
			printf("AT+CMGS=\"13790127305\"\r\n");
			delay_ms(RESPONSE_TIME);
			
			printf("GPS_state:%s,\n",&send_gps_state[0]);
			printf("GPS_latit:%s%s,\n",&send_latitude_aspect[0],&send_latitude[0]);
			printf("GPS_longt:%s%s,\n",&send_longitude_aspect[0],&send_longitude[0]);
			printf("GPS_height:%s.\n",&send_antenna_height[0]);
			
			printf("\r\n");
						
			while(key_scan())
				;
			
			delay_ms(200);
		}
	}
}

/******************************************************************************
Compass calibration and receive first data after power up.
******************************************************************************/

/******************************************************************************
Timing synchrony.
******************************************************************************/



/******************************************************************************
** timer1 ISR			@ 5MHz
** interrupt time = 0.2 * Divider * (loading value + 1) = 1ms.
** 				  = 0.2 * 8 * (12499 + 1) = 20ms.
******************************************************************************/
void __irq_entry timer1_isr(void)			//int time = 63ms
{
	fd.tim.int_clr1.cnt1_exp = 1;
	led_timer_count++;
	
	if(led_timer_count >= 100)
	{
		led_timer_count = 0;
		fd.io.gp0_3_out.clr2 = 1;
	}
	else fd.io.gp0_3_out.set2 = 1;
	//rg.io.gp0_3_out = IO_GP0_3_OUT_CLR0_MASK | IO_GP0_3_OUT_SET0_MASK;
}

/******************************************************************************
** timer2 ISR		@ 5MHz
** interrupt time = 0.2 * Divider * (loading value + 1) = 1ms.
** 				  = 0.2 * 4 * (1249 + 1) = 1ms.
******************************************************************************/
void __irq_entry timer2_isr(void)
{
	fd.tim.int_clr1.cnt2_exp = 1;			// Clear Timer2 interrupt flag
	
    //rg.io.gp0_3_out = IO_GP0_3_OUT_CLR1_MASK | IO_GP0_3_OUT_SET1_MASK;
}

/******************************************************************************
end
******************************************************************************/


⌨️ 快捷键说明

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