📄 main.c.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 + -