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

📄 delay.lis

📁 uIP是免费的TCP/IP协议栈,我们将它移植到我们的AVR以太网开发板中
💻 LIS
字号:
                        .module delay.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\hexok项目\AVRNET项目\AVRNET光盘\AVRuIP\delay.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;    delay_count -> R10,R11
 0000           ;      delay_cnt -> R10,R11
 0000           ; delay_cnt_buffer -> R12,R13
 0000           ;             ms -> R16
                        .even
 0000           _delay_ms::
 0000 0E940000          xcall push_gset4x
 0004                   .dbline -1
 0004                   .dbline 5
 0004           ; #include "delay.h"
 0004           ; 
 0004           ; 
 0004           ; void delay_ms(unsigned char ms)
 0004           ; {
 0004                   .dbline 6
 0004           ;    unsigned short delay_count = F_CPU / 4000;
 0004                   .dbline 20
 0004           ; #ifdef __GNUC__
 0004           ;     unsigned short cnt;
 0004           ;     asm volatile ("\n"
 0004           ;                   "L_dl1%=:\n\t"
 0004           ;                   "mov %A0, %A2\n\t"
 0004           ;                   "mov %B0, %B2\n"
 0004           ;                   "L_dl2%=:\n\t"
 0004           ;                   "sbiw %A0, 1\n\t"
 0004           ;                   "brne L_dl2%=\n\t"
 0004           ;                   "dec %1\n\t" "brne L_dl1%=\n\t":"=&w" (cnt)
 0004           ;                   :"r"(ms), "r"((unsigned short) (delay_count))
 0004           ;         );
 0004           ; #else
 0004           ;     unsigned short delay_cnt = F_CPU/6000;
 0004 80ED              ldi R24,2000
 0006 97E0              ldi R25,7
 0008 5C01              movw R10,R24
 000A 09C0              xjmp L3
 000C           L2:
 000C                   .dbline 24
 000C           ;     //unsigned short delay_cnt = 2400;   //*KU* for 14.745600 MHz Clock
 000C           ;     unsigned short delay_cnt_buffer;
 000C           ; 
 000C           ;     while (ms--) {
 000C                   .dbline 25
 000C           ;         delay_cnt_buffer = delay_cnt;
 000C 6501              movw R12,R10
 000E           L5:
 000E                   .dbline 26
 000E           L6:
 000E                   .dbline 26
 000E 1601              movw R2,R12
 0010 C101              movw R24,R2
 0012 0197              sbiw R24,1
 0014 6C01              movw R12,R24
 0016 2220              tst R2
 0018 D1F7              brne L5
 001A 3320              tst R3
 001C C1F7              brne L5
 001E           X0:
 001E                   .dbline 27
 001E           L3:
 001E                   .dbline 24
 001E 202E              mov R2,R16
 0020 3324              clr R3
 0022 0150              subi R16,1
 0024 2220              tst R2
 0026 91F7              brne L2
 0028                   .dbline -2
 0028           L1:
 0028 0E940000          xcall pop_gset4x
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbsym r delay_count 10 s
 002E                   .dbsym r delay_cnt 10 s
 002E                   .dbsym r delay_cnt_buffer 12 s
 002E                   .dbsym r ms 16 c
 002E                   .dbend

⌨️ 快捷键说明

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