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

📄 ntp.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 021C 5A93              st -y,R21
 021E 4A93              st -y,R20
 0220 8101              movw R16,R2
 0222 9201              movw R18,R4
 0224 0E940000          xcall div32u
 0228 FE01              movw R30,R28
 022A 0087              std z+8,R16
 022C 1187              std z+9,R17
 022E 2287              std z+10,R18
 0230 3387              std z+11,R19
 0232                   .dbline 121
 0232           ;       min = dw % 60;                                                                  //
 0232 4CE3              ldi R20,60
 0234 50E0              ldi R21,0
 0236 60E0              ldi R22,0
 0238 70E0              ldi R23,0
 023A FE01              movw R30,R28
 023C 2084              ldd R2,z+8
 023E 3184              ldd R3,z+9
 0240 4284              ldd R4,z+10
 0242 5384              ldd R5,z+11
 0244 7A93              st -y,R23
 0246 6A93              st -y,R22
 0248 5A93              st -y,R21
 024A 4A93              st -y,R20
 024C 8101              movw R16,R2
 024E 9201              movw R18,R4
 0250 0E940000          xcall mod32u
 0254 6801              movw R12,R16
 0256                   .dbline 122
 0256           ;       dw /= 60;                                                                               //
 0256 4CE3              ldi R20,60
 0258 50E0              ldi R21,0
 025A 60E0              ldi R22,0
 025C 70E0              ldi R23,0
 025E FE01              movw R30,R28
 0260 2084              ldd R2,z+8
 0262 3184              ldd R3,z+9
 0264 4284              ldd R4,z+10
 0266 5384              ldd R5,z+11
 0268 7A93              st -y,R23
 026A 6A93              st -y,R22
 026C 5A93              st -y,R21
 026E 4A93              st -y,R20
 0270 8101              movw R16,R2
 0272 9201              movw R18,R4
 0274 0E940000          xcall div32u
 0278 FE01              movw R30,R28
 027A 0087              std z+8,R16
 027C 1187              std z+9,R17
 027E 2287              std z+10,R18
 0280 3387              std z+11,R19
 0282                   .dbline 123
 0282           ;       hour = dw;                                                                              //
 0282 FE01              movw R30,R28
 0284 A084              ldd R10,z+8
 0286 B184              ldd R11,z+9
 0288                   .dbline 126
 0288           ; 
 0288           ;       #ifdef Debug
 0288           ;               sprintf((char*)ScratchPad, "%02u:%02u:%02u ... lag:%ums\n", hour, min, sec, lag);
 0288 0C84              ldd R0,y+12
 028A 1D84              ldd R1,y+13
 028C 1F82              std y+7,R1
 028E 0E82              std y+6,R0
 0290 FD82              std y+5,R15
 0292 EC82              std y+4,R14
 0294 DB82              std y+3,R13
 0296 CA82              std y+2,R12
 0298 B982              std y+1,R11
 029A A882              std y+0,R10
 029C 20E0              ldi R18,<L8
 029E 30E0              ldi R19,>L8
 02A0 00E0              ldi R16,<_ScratchPad
 02A2 10E0              ldi R17,>_ScratchPad
 02A4 0E940000          xcall _sprintf
 02A8                   .dbline 127
 02A8           ;               SendDebugStr((char*)ScratchPad);
 02A8 00E0              ldi R16,<_ScratchPad
 02AA 10E0              ldi R17,>_ScratchPad
 02AC 0E940000          xcall _SendDebugStr
 02B0                   .dbline 130
 02B0           ;       #endif
 02B0           ; 
 02B0           ;       if (IP != u32_Get(&NTP_IP.ip32)) return;                //
 02B0 00E0              ldi R16,<_NTP_IP
 02B2 10E0              ldi R17,>_NTP_IP
 02B4 0E940000          xcall _u32_Get
 02B8 FE01              movw R30,R28
 02BA 208C              ldd R2,z+24
 02BC 318C              ldd R3,z+25
 02BE 428C              ldd R4,z+26
 02C0 538C              ldd R5,z+27
 02C2 2016              cp R2,R16
 02C4 3106              cpc R3,R17
 02C6 4206              cpc R4,R18
 02C8 5306              cpc R5,R19
 02CA 09F0              breq L9
 02CC                   .dbline 130
 02CC 0FC0              xjmp L4
 02CE           L9:
 02CE                   .dbline 133
 02CE           ;                                                                                                       //
 02CE           ;       #ifdef Debug
 02CE           ;               SendDebugStr("Time set\n");                                     //
 02CE 00E0              ldi R16,<L11
 02D0 10E0              ldi R17,>L11
 02D2 0E940000          xcall _SendDebugStr
 02D6                   .dbline 136
 02D6           ;    #endif
 02D6           ;                                                                                                       //
 02D6           ;       u32_Put(&NTP_IP.ip32, 0);                                               //
 02D6 40E0              ldi R20,0
 02D8 50E0              ldi R21,0
 02DA 60E0              ldi R22,0
 02DC 70E0              ldi R23,0
 02DE 6883              std y+0,R22
 02E0 7983              std y+1,R23
 02E2 9A01              movw R18,R20
 02E4 00E0              ldi R16,<_NTP_IP
 02E6 10E0              ldi R17,>_NTP_IP
 02E8 0E940000          xcall _u32_Put
 02EC                   .dbline -2
 02EC           L4:
 02EC 2E96              adiw R28,14
 02EE 0E940000          xcall pop_gset5
 02F2 2496              adiw R28,4
 02F4                   .dbline 0 ; func end
 02F4 0895              ret
 02F6                   .dbsym r sec 14 s
 02F6                   .dbsym r min 12 s
 02F6                   .dbsym r hour 10 s
 02F6                   .dbsym l lag 12 s
 02F6                   .dbsym l dw 8 l
 02F6                   .dbsym r NTP 10 pS[TNTP]
 02F6                   .dbsym l IP 24 l
 02F6                   .dbend
 02F6                   .dbfunc e NTP_10ms_Timer _NTP_10ms_Timer fV
                        .even
 02F6           _NTP_10ms_Timer::
 02F6 0E940000          xcall push_gset2
 02FA                   .dbline -1
 02FA                   .dbline 143
 02FA           ; }
 02FA           ; 
 02FA           ; //*********************************************************************************************************************
 02FA           ; // this is called every 10ms from the UDP module
 02FA           ; 
 02FA           ; void NTP_10ms_Timer(void)
 02FA           ; {
 02FA                   .dbline 144
 02FA           ;       if (NTP_Timer < 5000)                                                                           //
 02FA 80910400          lds R24,_NTP_Timer
 02FE 90910500          lds R25,_NTP_Timer+1
 0302 8838              cpi R24,136
 0304 E3E1              ldi R30,19
 0306 9E07              cpc R25,R30
 0308 50F4              brsh L13
 030A                   .dbline 145
 030A           ;               NTP_Timer += 10;                                                                                // update the timer
 030A 80910400          lds R24,_NTP_Timer
 030E 90910500          lds R25,_NTP_Timer+1
 0312 0A96              adiw R24,10
 0314 90930500          sts _NTP_Timer+1,R25
 0318 80930400          sts _NTP_Timer,R24
 031C 0CC0              xjmp L14
 031E           L13:
 031E                   .dbline 147
 031E 40E0              ldi R20,0
 0320 50E0              ldi R21,0
 0322 60E0              ldi R22,0
 0324 70E0              ldi R23,0
 0326 50930100          sts _NTP_IP+1,R21
 032A 40930000          sts _NTP_IP,R20
 032E 70930300          sts _NTP_IP+2+1,R23
 0332 60930200          sts _NTP_IP+2,R22
 0336           L14:
 0336                   .dbline -2
 0336           L12:
 0336 0E940000          xcall pop_gset2
 033A                   .dbline 0 ; func end
 033A 0895              ret
 033C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\ntp.c
 0000           _NTP_IP::
 0000                   .blkb 4
 0004                   .dbunion 0 4 TIPAddr
 0004                   .dbfield 0 ip8 A[4:4]c
 0004                   .dbfield 0 ip32 l
 0004                   .dbend
 0004                   .dbsym e NTP_IP _NTP_IP S[TIPAddr]
 0004           _NTP_Timer::
 0004                   .blkb 2
 0006                   .dbsym e NTP_Timer _NTP_Timer s
                        .area data(ram, con, rel)
 0000                   .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\ntp.c
 0000           L11:
 0000                   .blkb 10
                        .area idata
 0000 54696D65207365740A00      .byte 'T,'i,'m,'e,32,'s,'e,'t,10,0
                        .area data(ram, con, rel)
 000A                   .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\ntp.c
 000A           L8:
 000A                   .blkb 29
                        .area idata
 000A 253032753A253032753A25303275202E  .byte 37,48,50,'u,58,37,48,50,'u,58,37,48,50,'u,32,46
 001A 2E2E206C61673A25756D730A00        .byte 46,46,32,'l,'a,'g,58,37,'u,'m,'s,10,0
                        .area data(ram, con, rel)
 0027                   .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\ntp.c
 0027           L7:
 0027                   .blkb 22
                        .area idata
 0027 0A586D6974313A256C750A586D697432  .byte 10,'X,'m,'i,'t,49,58,37,'l,'u,10,'X,'m,'i,'t,50
 0037 3A256C750A00      .byte 58,37,'l,'u,10,0
                        .area data(ram, con, rel)
 003D                   .dbfile C:\AVR\AT-Modem__PPP__UDP__IC\ntp.c

⌨️ 快捷键说明

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