📄 mp3.s
字号:
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 657
; }
ldi R24,<_FILE_DATA_BUF
ldi R25,>_FILE_DATA_BUF
sts _mCmdParam+8+1,R25
sts _mCmdParam+8,R24
.dbline 658
; }
xcall _CH375FileReadX
.dbline -2
L21:
.dbline 0 ; func end
ret
.dbend
.dbfunc e CH375FileWrite _CH375FileWrite fc
.even
_CH375FileWrite::
.dbline -1
.dbline 662
; }
; }
; }
; }
.dbline 663
; }
ldi R24,<_FILE_DATA_BUF
ldi R25,>_FILE_DATA_BUF
sts _mCmdParam+8+1,R25
sts _mCmdParam+8,R24
.dbline 664
; }
xcall _CH375FileWriteX
.dbline -2
L23:
.dbline 0 ; func end
ret
.dbend
.dbfunc e xQueryInterrupt _xQueryInterrupt fV
.even
_xQueryInterrupt::
.dbline -1
.dbline 674
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
L26:
.dbline 675
L27:
.dbline 675
; }
sbic 0x13,3
rjmp L26
.dbline 676
; }
ldi R16,34
xcall _xWriteCH375Cmd
.dbline 677
; }
xcall _xReadCH375Data
sts _CH375IntStatus,R16
.dbline 678
; }
lds R24,_CH375IntStatus
cpi R24,22
brne L29
.dbline 678
ldi R24,1
sts _CH375DiskStatus,R24
xjmp L30
L29:
.dbline 679
; }
lds R24,_CH375IntStatus
cpi R24,21
brne L31
.dbline 679
ldi R24,2
sts _CH375DiskStatus,R24
L31:
L30:
.dbline -2
L25:
.dbline 0 ; func end
ret
.dbend
.dbfunc e xWriteToExtBuf _xWriteToExtBuf fV
; mLength -> R16
.even
_xWriteToExtBuf::
.dbline -1
.dbline 738
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 739
; }
dec R16
.dbline -2
L33:
.dbline 0 ; func end
ret
.dbsym r mLength 16 c
.dbend
.dbfunc e xReadFromExtBuf _xReadFromExtBuf fV
; mLength -> R16
.even
_xReadFromExtBuf::
.dbline -1
.dbline 743
; }
; }
; }
; }
.dbline 744
; }
dec R16
.dbline -2
L34:
.dbline 0 ; func end
ret
.dbsym r mLength 16 c
.dbend
.dbfunc e CH375LibInit _CH375LibInit fc
.even
_CH375LibInit::
.dbline -1
.dbline 750
; }
; }
; }
; }
; }
; }
.dbline 751
; }
ldi R24,5
sts _CH375LibConfig,R24
.dbline 752
; }
clr R2
sts _DISK_BASE_BUF,R2
.dbline 753
; }
xcall _CH375GetVer
cpi R16,41
brsh L36
.dbline 753
ldi R16,255
xjmp L35
L36:
.dbline 754
; }
xcall _CH375Init
.dbline -2
L35:
.dbline 0 ; func end
ret
.dbend
.dbfile mp3.c
.dbfunc e mp3_pause _mp3_pause fV
.even
_mp3_pause::
.dbline -1
.dbline 26
L39:
.dbline 27
L40:
.dbline 27
xjmp L39
X0:
.dbline -2
L38:
.dbline 0 ; func end
ret
.dbend
.dbfunc e mDelaymS _mDelaymS fV
; i -> R10,R11
; ms -> y+10
.even
_mDelaymS::
xcall push_arg4
xcall push_gset3
sbiw R28,4
.dbline -1
.dbline 30
xjmp L44
L43:
.dbline 32
ldi R24,2600
ldi R25,10
movw R10,R24
xjmp L49
L46:
.dbline 32
L47:
.dbline 32
movw R24,R10
sbiw R24,1
movw R10,R24
L49:
.dbline 32
tst R10
brne L46
tst R11
brne L46
X1:
L44:
.dbline 32
movw R30,R28
ldd R2,z+10
ldd R3,z+11
ldd R4,z+12
ldd R5,z+13
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
ldi R20,1
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
sub R2,R20
sbc R3,R21
sbc R4,R22
sbc R5,R23
movw R30,R28
std z+10,R2
std z+11,R3
std z+12,R4
std z+13,R5
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+0
ldd R3,z+1
ldd R4,z+2
ldd R5,z+3
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
breq X2
xjmp L43
X2:
.dbline -2
L42:
adiw R28,4
xcall pop_gset3
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r i 10 s
.dbsym l ms 10 l
.dbend
.dbfunc e main _main fV
; t2 -> <dead>
; t1 -> <dead>
; data -> <dead>
; t0 -> <dead>
; i -> <dead>
.even
_main::
.dbline -1
.dbline 37
.dbline 39
xcall _Usart_init
.dbline 40
xcall _portIni
.dbline 41
xcall _DelayIni
.dbline 42
xcall _mp3Reset
.dbline 43
xcall _mp3SineTest
.dbline 44
xcall _test_1011
L51:
.dbline 45
L52:
.dbline 45
xjmp L51
X3:
.dbline -2
L50:
.dbline 0 ; func end
ret
.dbsym l t2 1 c
.dbsym l t1 1 c
.dbsym l data 1 c
.dbsym l t0 1 c
.dbsym l i 1 i
.dbend
.dbfunc e test_1011 _test_1011 fV
; i -> R22
; data_pointer -> R20,R21
.even
_test_1011::
xcall push_gset2
.dbline -1
.dbline 52
xjmp L56
L55:
.dbline 55
.dbline 56
clr R20
clr R21
.dbline 57
ldi R16,<L58
ldi R17,>L58
xcall _Print_str
xjmp L60
L59:
.dbline 59
.dbline 60
sbis 0x10,0
rjmp L62
.dbline 61
.dbline 62
.dbline 62
cbi 0x12,2
.dbline 62
.dbline 62
.dbline 63
clr R22
xjmp L67
L64:
.dbline 64
.dbline 65
ldi R24,<_vsBeepMP3
ldi R25,>_vsBeepMP3
movw R30,R20
add R30,R24
adc R31,R25
lpm R16,Z
xcall _spiSend
.dbline 66
subi R20,255 ; offset = 1
sbci R21,255
.dbline 67
L65:
.dbline 63
inc R22
L67:
.dbline 63
cpi R22,32
brlo L64
.dbline 68
.dbline 68
sbi 0x12,2
.dbline 68
.dbline 68
.dbline 69
cpi R20,191
ldi R30,18
cpc R21,R30
brne L68
.dbline 69
xjmp L61
L68:
.dbline 70
L62:
.dbline 71
L60:
.dbline 58
cpi R20,192
ldi R30,18
cpc R21,R30
brlo L59
L61:
.dbline 72
L56:
.dbline 54
xjmp L55
X4:
.dbline -2
L54:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 22 c
.dbsym r data_pointer 20 s
.dbend
.area bss(ram, con, rel)
.dbfile mp3.c
_FILE_DATA_BUF::
.blkb 512
.dbfile E:\MP3程序\Main/../Ch375b/CH375HFB.H
.dbsym e FILE_DATA_BUF _FILE_DATA_BUF A[512:512]c
_DISK_BASE_BUF::
.blkb 512
.dbsym e DISK_BASE_BUF _DISK_BASE_BUF A[512:512]c
_mCmdParam::
.blkb 30
.dbsym e mCmdParam _mCmdParam X
_c::
.blkb 2
.dbfile mp3.c
.dbsym e c _c i
.area data(ram, con, rel)
.dbfile mp3.c
L58:
.blkb 6
.area idata
.byte 'm,'p,51,13,10,0
.area data(ram, con, rel)
.dbfile mp3.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -