📄 main.s
字号:
.module main.c
.area eeprom(rom, con, rel)
_ip::
.byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbsym e ip _ip A[16:16]c
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
_GPRSCommand::
.blkw 1
.area idata
.word L1
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.blkw 1
.area idata
.word L2
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.blkw 1
.area idata
.word L3
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.blkw 1
.area idata
.word L4
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.blkw 1
.area idata
.word L5
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbsym e GPRSCommand _GPRSCommand A[10:5]pc
_IPADD::
.blkb 16
.area idata
.byte 48,48,48,46,48,48,48,46,48,48,48,46,48,48,48,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbsym e IPADD _IPADD A[16:16]c
_p_IPADD::
.blkw 1
.area idata
.word _IPADD
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbsym e p_IPADD _p_IPADD pc
_CC::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbsym e CC _CC c
.area text(rom, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
.dbfunc e main _main fV
; Res -> <dead>
; ResSendSucc -> R20
; num -> R20
.even
_main::
sbiw R28,2
.dbline -1
.dbline 32
; //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)
; {
.dbline 35
; BYTE num;
; BYTE Res;
; BYTE ResSendSucc=1;
ldi R20,1
.dbline 37
;
; init_devices();
xcall _init_devices
.dbline 38
; timer1_init();
xcall _timer1_init
.dbline 39
; initTimer2();
xcall _initTimer2
.dbline 40
; WriteCommStr0("start");
ldi R16,<L7
ldi R17,>L7
xcall _WriteCommStr0
.dbline 42
;
; ModemInit();
xcall _ModemInit
.dbline 43
; if(Waitfor ("ip", 250)){
ldi R18,250
ldi R16,<L10
ldi R17,>L10
xcall _Waitfor
tst R16
breq L8
.dbline 43
.dbline 44
; WriteCommStr0("input ip add end with ;");
ldi R16,<L11
ldi R17,>L11
xcall _WriteCommStr0
.dbline 45
; UCSR0B &= ~(1<<RXCIE0);//stop u0 int
cbi 0xa,7
xjmp L13
L12:
.dbline 46
.dbline 47
lds R30,_p_IPADD
lds R31,_p_IPADD+1
st Z+,R20
sts _p_IPADD+1,R31
sts _p_IPADD,R30
.dbline 48
L13:
.dbline 46
; while((num=ReadComm0())!=';'){
xcall _ReadComm0
mov R20,R16
cpi R20,59
brne L12
.dbline 49
; *p_IPADD++=num;
; }
; *p_IPADD=0;
clr R2
lds R30,_p_IPADD
lds R31,_p_IPADD+1
std z+0,R2
.dbline 50
; EEPROM_WRITE((int)ip,IPADD);
ldi R24,16
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_IPADD
ldi R19,>_IPADD
ldi R16,<_ip
ldi R17,>_ip
xcall _EEPROMWriteBytes
.dbline 51
; WriteCommStr0("\nyou ip is:");
ldi R16,<L15
ldi R17,>L15
xcall _WriteCommStr0
.dbline 52
; WriteCommStr0(IPADD);
ldi R16,<_IPADD
ldi R17,>_IPADD
xcall _WriteCommStr0
.dbline 53
; WriteCommStr0("\nturn switch to gps mode\n");
ldi R16,<L16
ldi R17,>L16
xcall _WriteCommStr0
.dbline 54
; UCSR0B |= (1<<RXCIE0);//start u0 int
sbi 0xa,7
.dbline 55
; DelayMORE(100);
ldi R16,100
xcall _DelayMORE
.dbline 56
xjmp L9
L8:
.dbline 56
; }else{
.dbline 57
; EEPROM_READ((int)ip,IPADD);
ldi R24,16
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_IPADD
ldi R19,>_IPADD
ldi R16,<_ip
ldi R17,>_ip
xcall _EEPROMReadBytes
.dbline 58
; WriteCommStr0("config time has pass");
ldi R16,<L17
ldi R17,>L17
xcall _WriteCommStr0
.dbline 59
; DelayMORE(10);
ldi R16,10
xcall _DelayMORE
.dbline 60
; }
L9:
.dbline 62
;
; WriteCommStr0("\nif you have not turn switch ,you must restart device");
ldi R16,<L18
ldi R17,>L18
xcall _WriteCommStr0
.dbline 63
; WriteCommStr0("at\r");
ldi R16,<L19
ldi R17,>L19
xcall _WriteCommStr0
.dbline 64
; conGPRS();
xcall _conGPRS
.dbline 65
; DelayMORE(50);
ldi R16,50
xcall _DelayMORE
.dbline 66
; WriteCommStr0 ("ATD*97#\r");
ldi R16,<L20
ldi R17,>L20
xcall _WriteCommStr0
.dbline 67
; ModemInit();
xcall _ModemInit
.dbline 68
; iniGPS();
xcall _iniGPS
xjmp L22
L21:
.dbline 69
; while(!Waitfor ("en", 254)){ // Wait for OK
.dbline 71
; //WriteCommStr0 ("ATD*97#\r");
; if(Waitfor ("CAR",50)){
ldi R18,50
ldi R16,<L27
ldi R17,>L27
xcall _Waitfor
tst R16
breq L25
.dbline 71
.dbline 72
; conGPRS();
xcall _conGPRS
.dbline 73
; }
L25:
.dbline 74
; if(CC++>3)
lds R2,_CC
clr R3
mov R24,R2
subi R24,255 ; addi 1
sts _CC,R24
ldi R24,3
cp R24,R2
brsh L28
.dbline 75
; break;
xjmp L23
L28:
.dbline 76
L22:
.dbline 69
ldi R18,254
ldi R16,<L24
ldi R17,>L24
xcall _Waitfor
tst R16
breq L21
L23:
.dbline 77
; }
; DelayMORE(50);
ldi R16,50
xcall _DelayMORE
xjmp L31
L30:
.dbline 79
; while(1)
; {
.dbline 80
; UCSR1B |= (1<<RXCIE1);
sbi 0x1,7
.dbline 81
; DelayMORE(100);
ldi R16,100
xcall _DelayMORE
.dbline 82
; UCSR1B &= ~(1<<RXCIE1);
cbi 0x1,7
.dbline 83
; if(Waitfor ("CAR",50)){
ldi R18,50
ldi R16,<L27
ldi R17,>L27
xcall _Waitfor
tst R16
breq L33
.dbline 83
.dbline 84
; conGPRS();
xcall _conGPRS
.dbline 85
; }
L33:
.dbline 86
L31:
.dbline 78
xjmp L30
X0:
.dbline -2
L6:
adiw R28,2
.dbline 0 ; func end
ret
.dbsym l Res 3 c
.dbsym r ResSendSucc 20 c
.dbsym r num 20 c
.dbend
.dbfunc e conGPRS _conGPRS fV
; Res -> R20
; index -> R22
.even
_conGPRS::
xcall push_gset2
.dbline -1
.dbline 89
; }
; }
;
; void conGPRS(){
.dbline 91
; BYTE index ;
; BYTE Res = 0 ;
clr R20
.dbline 92
; for (index = 0; index <= 4; index++)
clr R22
xjmp L39
L36:
.dbline 93
; {
.dbline 94
; WriteCommStr0 (GPRSCommand [index]);
ldi R24,2
mul R24,R22
movw R30,R0
ldi R24,<_GPRSCommand
ldi R25,>_GPRSCommand
add R30,R24
adc R31,R25
ldd R16,z+0
ldd R17,z+1
xcall _WriteCommStr0
.dbline 96
;
; Res = Waitfor ("OK", 50); // Wait for OK
ldi R18,50
ldi R16,<L40
ldi R17,>L40
xcall _Waitfor
mov R20,R16
.dbline 97
; DelayMORE(30);//40
ldi R16,30
xcall _DelayMORE
.dbline 98
; if (!Res)
tst R20
brne L41
.dbline 99
; {
.dbline 100
; ModemInit ();
xcall _ModemInit
.dbline 101
; index = 0;
clr R22
.dbline 102
; WriteCommStr0("ATH\r");
ldi R16,<L43
ldi R17,>L43
xcall _WriteCommStr0
.dbline 103
; Waitfor ("OK", 30);
ldi R18,30
ldi R16,<L40
ldi R17,>L40
xcall _Waitfor
.dbline 104
; }
L41:
.dbline 105
L37:
.dbline 92
inc R22
L39:
.dbline 92
ldi R24,4
cp R24,R22
brsh L36
.dbline 106
; }
; WriteCommStr0 ("AT$DESTINFO=\"");
ldi R16,<L44
ldi R17,>L44
xcall _WriteCommStr0
.dbline 107
; WriteCommStr0 (IPADD);
ldi R16,<_IPADD
ldi R17,>_IPADD
xcall _WriteCommStr0
.dbline 108
; WriteCommStr0 ("\",2,80\r");
ldi R16,<L45
ldi R17,>L45
xcall _WriteCommStr0
.dbline -2
L35:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r Res 20 c
.dbsym r index 22 c
.dbend
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L45:
.blkb 8
.area idata
.byte 34,44,50,44,56,48,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L44:
.blkb 14
.area idata
.byte 'A,'T,36,'D,'E,'S,'T,'I,'N,'F,'O,61,34,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L43:
.blkb 5
.area idata
.byte 'A,'T,'H,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L40:
.blkb 3
.area idata
.byte 'O,'K,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L27:
.blkb 4
.area idata
.byte 'C,'A,'R,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L24:
.blkb 3
.area idata
.byte 'e,'n,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L20:
.blkb 9
.area idata
.byte 'A,'T,'D,42,57,55,35,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L19:
.blkb 4
.area idata
.byte 'a,'t,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L18:
.blkb 54
.area idata
.byte 10,'i,'f,32,'y,'o,'u,32,'h,'a,'v,'e,32,'n,'o,'t
.byte 32,'t,'u,'r,'n,32,'s,'w,'i,'t,'c,'h,32,44,'y,'o
.byte 'u,32,'m,'u,'s,'t,32,'r,'e,'s,'t,'a,'r,'t,32,'d
.byte 'e,'v,'i,'c,'e,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L17:
.blkb 21
.area idata
.byte 'c,'o,'n,'f,'i,'g,32,'t,'i,'m,'e,32,'h,'a,'s,32
.byte 'p,'a,'s,'s,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L16:
.blkb 26
.area idata
.byte 10,'t,'u,'r,'n,32,'s,'w,'i,'t,'c,'h,32,'t,'o,32
.byte 'g,'p,'s,32,'m,'o,'d,'e,10,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L15:
.blkb 12
.area idata
.byte 10,'y,'o,'u,32,'i,'p,32,'i,'s,58,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L11:
.blkb 24
.area idata
.byte 'i,'n,'p,'u,'t,32,'i,'p,32,'a,'d,'d,32,'e,'n,'d
.byte 32,'w,'i,'t,'h,32,59,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L10:
.blkb 3
.area idata
.byte 'i,'p,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L7:
.blkb 6
.area idata
.byte 's,'t,'a,'r,'t,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L5:
.blkb 14
.area idata
.byte 'A,'T,36,'N,'O,'S,'L,'E,'E,'P,61,49,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L4:
.blkb 22
.area idata
.byte 'A,'T,37,'C,'G,'P,'C,'O,61,49,44,34,'P,'A,'P,44
.byte 44,34,44,49,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L3:
.blkb 27
.area idata
.byte 'A,'T,43,'C,'G,'D,'C,'O,'N,'T,61,49,44,34,'I,'P
.byte 34,44,34,'C,'M,'W,'A,'P,34,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L2:
.blkb 6
.area idata
.byte 'A,'T,'E,48,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
L1:
.blkb 4
.area idata
.byte 'A,'T,13,0
.area data(ram, con, rel)
.dbfile F:\mydoc\avrproject\icc\big162\gpseep\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -