📄 main.c
字号:
//ICC-AVR application builder : 2007-6-9 11:45:19
// Target : M162
// Crystal: 3.6864Mhz
#include "sci.h"
#include "modem.h"
#include <stdlib.h>
#include <eeprom.h>
#pragma data:eeprom
BYTE ip[]="000.000.000.000";
#pragma data:data
char * GPRSCommand [] = {
"AT\r",
"ATE0\r",//////////
"AT+CGDCONT=1,\"IP\",\"CMWAP\"\r",
"AT%CGPCO=1,\"PAP,,\",1\r",
//"AT$DESTINFO=\"218.6.64.240\",2,80\r",//UDP 2 TCP 1
"AT$NOSLEEP=1\r"
};
BYTE IPADD[]="000.000.000.000";
BYTE *p_IPADD=IPADD;
BYTE CC=0;
void conGPRS(void);
void init_devices(void);
void iniGPS(void);
void main(void)
{
BYTE num;
BYTE Res;
BYTE ResSendSucc=1;
init_devices();
timer1_init();
initTimer2();
WriteCommStr0("start");
ModemInit();
if(Waitfor ("ip", 250)){
WriteCommStr0("input ip add end with ;");
UCSR0B &= ~(1<<RXCIE0);//stop u0 int
while((num=ReadComm0())!=';'){
*p_IPADD++=num;
}
*p_IPADD=0;
EEPROM_WRITE((int)ip,IPADD);
WriteCommStr0("\nyou ip is:");
WriteCommStr0(IPADD);
WriteCommStr0("\nturn switch to gps mode\n");
UCSR0B |= (1<<RXCIE0);//start u0 int
DelayMORE(100);
}else{
EEPROM_READ((int)ip,IPADD);
WriteCommStr0("config time has pass");
DelayMORE(10);
}
WriteCommStr0("\nif you have not turn switch ,you must restart device");
WriteCommStr0("at\r");
conGPRS();
DelayMORE(50);
WriteCommStr0 ("ATD*97#\r");
ModemInit();
iniGPS();
while(!Waitfor ("en", 254)){ // Wait for OK
//WriteCommStr0 ("ATD*97#\r");
if(Waitfor ("CAR",50)){
conGPRS();
}
if(CC++>3)
break;
}
DelayMORE(50);
while(1)
{
UCSR1B |= (1<<RXCIE1);
DelayMORE(100);
UCSR1B &= ~(1<<RXCIE1);
if(Waitfor ("CAR",50)){
conGPRS();
}
}
}
void conGPRS(){
BYTE index ;
BYTE Res = 0 ;
for (index = 0; index <= 4; index++)
{
WriteCommStr0 (GPRSCommand [index]);
Res = Waitfor ("OK", 50); // Wait for OK
DelayMORE(30);//40
if (!Res)
{
ModemInit ();
index = 0;
WriteCommStr0("ATH\r");
Waitfor ("OK", 30);
}
}
WriteCommStr0 ("AT$DESTINFO=\"");
WriteCommStr0 (IPADD);
WriteCommStr0 ("\",2,80\r");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -