📄 prj1.lst
字号:
__start:
__text_start:
2A E5CF LDI R28,0x5F
2B E0D4 LDI R29,4
2C BFCD OUT 0x3D,R28
2D BFDE OUT 0x3E,R29
2E 51C0 SUBI R28,0x10
2F 40D0 SBCI R29,0
30 EA0A LDI R16,0xAA
31 8308 STD Y+0,R16
32 2400 CLR R0
33 E6E0 LDI R30,0x60
34 E0F0 LDI R31,0
35 E010 LDI R17,0
36 36E0 CPI R30,0x60
37 07F1 CPC R31,R17
38 F011 BEQ 0x003B
39 9201 ST R0,Z+
3A CFFB RJMP 0x0036
3B 8300 STD Z+0,R16
3C E5E4 LDI R30,0x54
3D E0F0 LDI R31,0
3E E6A0 LDI R26,0x60
3F E0B0 LDI R27,0
40 E010 LDI R17,0
41 35E4 CPI R30,0x54
42 07F1 CPC R31,R17
43 F021 BEQ 0x0048
44 95C8 LPM
45 9631 ADIW R30,1
46 920D ST R0,X+
47 CFF9 RJMP 0x0041
48 940E 0052 CALL _main
_exit:
4A CFFF RJMP _exit
FILE: E:\__test\_Delay_nus_Count_uint_n--_ok\Main.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003)
(0004) //通过计数的N us延时函数
(0005) //--延时计算:t_delay = 4 * nt + 12t
(0006) //--延时范围:n>=0, n<=255 (即12t - 1032t ) //8M时,是1.5us - 129us
(0007) void Delay_nus_Count(unsigned int n) //--0.5us左右
(0008) {
_Delay_nus_Count:
n --> R16
4B C002 RJMP 0x004E
(0009) while(n)
(0010) n--;
4C 5001 SUBI R16,1
4D 4010 SBCI R17,0
4E 3000 CPI R16,0
4F 0701 CPC R16,R17
50 F7D9 BNE 0x004C
51 9508 RET
(0011) }
(0012)
(0013) void main(void)
(0014) {
(0015) Delay_nus_Count(10);
FILE: <library>
_main:
52 E00A LDI R16,0xA
53 E010 LDI R17,0
54 DFF6 RCALL _Delay_nus_Count
55 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -