📄 cs5532.lis
字号:
0058 0FEF ldi R16,255
005A D2DF xcall _cs5532_wr_byte
005C .dbline 83
005C L17:
005C .dbline 80
005C 4395 inc R20
005E L19:
005E .dbline 80
005E 4F30 cpi R20,15
0060 D8F3 brlo L16
0062 .dbline 84
0062 ; {
0062 ; cs5532_wr_byte(0xFF);
0062 ; }
0062 ; cs5532_wr_byte(0xFE);
0062 0EEF ldi R16,254
0064 CDDF xcall _cs5532_wr_byte
0066 .dbline -2
0066 L15:
0066 0E940000 xcall pop_gset1
006A .dbline 0 ; func end
006A 0895 ret
006C .dbsym r i 20 c
006C .dbend
006C .dbfunc e cs5532_wr_reg _cs5532_wr_reg fV
006C ; temp -> y+0
006C ; dat -> y+6
006C ; cmd -> R20
.even
006C _cs5532_wr_reg::
006C 3A93 st -y,r19
006E 2A93 st -y,r18
0070 0E940000 xcall push_gset1
0074 402F mov R20,R16
0076 2497 sbiw R28,4
0078 .dbline -1
0078 .dbline 93
0078 ; }
0078 ;
0078 ;
0078 ; /**********************************************************************
0078 ; functionName:
0078 ; description:
0078 ; **********************************************************************/
0078 ; void cs5532_wr_reg(uint08 cmd,uint32 dat)
0078 ; {
0078 .dbline 95
0078 ; uint08 temp[4];
0078 ; temp[0]=dat>>24;
0078 88E1 ldi R24,24
007A 90E0 ldi R25,0
007C FE01 movw R30,R28
007E 2680 ldd R2,z+6
0080 3780 ldd R3,z+7
0082 4084 ldd R4,z+8
0084 5184 ldd R5,z+9
0086 8A93 st -y,R24
0088 8101 movw R16,R2
008A 9201 movw R18,R4
008C 0E940000 xcall lsr32
0090 0883 std y+0,R16
0092 .dbline 96
0092 ; temp[1]=dat>>16;
0092 FE01 movw R30,R28
0094 2680 ldd R2,z+6
0096 3780 ldd R3,z+7
0098 4084 ldd R4,z+8
009A 5184 ldd R5,z+9
009C 1201 movw R2,R4
009E 4424 clr R4
00A0 5524 clr R5
00A2 2982 std y+1,R2
00A4 .dbline 97
00A4 ; temp[2]=dat>>8;
00A4 88E0 ldi R24,8
00A6 90E0 ldi R25,0
00A8 FE01 movw R30,R28
00AA 2680 ldd R2,z+6
00AC 3780 ldd R3,z+7
00AE 4084 ldd R4,z+8
00B0 5184 ldd R5,z+9
00B2 8A93 st -y,R24
00B4 8101 movw R16,R2
00B6 9201 movw R18,R4
00B8 0E940000 xcall lsr32
00BC 0A83 std y+2,R16
00BE .dbline 98
00BE ; temp[3]=dat;
00BE FE01 movw R30,R28
00C0 2680 ldd R2,z+6
00C2 3780 ldd R3,z+7
00C4 4084 ldd R4,z+8
00C6 5184 ldd R5,z+9
00C8 2B82 std y+3,R2
00CA .dbline 99
00CA ; cs5532_wr_byte(cmd);
00CA 042F mov R16,R20
00CC 99DF xcall _cs5532_wr_byte
00CE .dbline 100
00CE ; cs5532_wr_byte(temp[0]);
00CE 0881 ldd R16,y+0
00D0 97DF xcall _cs5532_wr_byte
00D2 .dbline 101
00D2 ; cs5532_wr_byte(temp[1]);
00D2 0981 ldd R16,y+1
00D4 95DF xcall _cs5532_wr_byte
00D6 .dbline 102
00D6 ; cs5532_wr_byte(temp[2]);
00D6 0A81 ldd R16,y+2
00D8 93DF xcall _cs5532_wr_byte
00DA .dbline 103
00DA ; cs5532_wr_byte(temp[3]);
00DA 0B81 ldd R16,y+3
00DC 91DF xcall _cs5532_wr_byte
00DE .dbline -2
00DE L20:
00DE 2496 adiw R28,4
00E0 0E940000 xcall pop_gset1
00E4 2296 adiw R28,2
00E6 .dbline 0 ; func end
00E6 0895 ret
00E8 .dbsym l temp 0 A[4:4]c
00E8 .dbsym l dat 6 l
00E8 .dbsym r cmd 20 c
00E8 .dbend
00E8 .dbfunc e cs5532_rd_reg _cs5532_rd_reg fV
00E8 ; cmd -> R20
.even
00E8 _cs5532_rd_reg::
00E8 0E940000 xcall push_gset1
00EC 402F mov R20,R16
00EE .dbline -1
00EE .dbline 113
00EE ; }
00EE ;
00EE ;
00EE ;
00EE ; /**********************************************************************
00EE ; functionName:void cs5532_rd_reg(uint08 cmd)
00EE ; description:
00EE ; **********************************************************************/
00EE ; void cs5532_rd_reg(uint08 cmd)
00EE ; {
00EE .dbline 114
00EE ; cs5532_wr_byte(cmd);
00EE 042F mov R16,R20
00F0 87DF xcall _cs5532_wr_byte
00F2 .dbline 115
00F2 ; cs5532_buf[0]=cs5532_rd_byte();
00F2 9EDF xcall _cs5532_rd_byte
00F4 00930000 sts _cs5532_buf,R16
00F8 .dbline 116
00F8 ; cs5532_buf[1]=cs5532_rd_byte();
00F8 9BDF xcall _cs5532_rd_byte
00FA 00930100 sts _cs5532_buf+1,R16
00FE .dbline 117
00FE ; cs5532_buf[2]=cs5532_rd_byte();
00FE 98DF xcall _cs5532_rd_byte
0100 00930200 sts _cs5532_buf+2,R16
0104 .dbline 118
0104 ; cs5532_buf[3]=cs5532_rd_byte();
0104 95DF xcall _cs5532_rd_byte
0106 00930300 sts _cs5532_buf+3,R16
010A .dbline -2
010A L27:
010A 0E940000 xcall pop_gset1
010E .dbline 0 ; func end
010E 0895 ret
0110 .dbsym r cmd 20 c
0110 .dbend
0110 .dbfunc e cs5532_init _cs5532_init fV
.even
0110 _cs5532_init::
0110 .dbline -1
0110 .dbline 127
0110 ; }
0110 ;
0110 ;
0110 ; /**********************************************************************
0110 ; functionName:
0110 ; description:
0110 ; **********************************************************************/
0110 ; void cs5532_init(void)
0110 ; {
0110 .dbline 128
0110 ; ms_delay(50); //等待电源稳定
0110 02E3 ldi R16,50
0112 0E940000 xcall _ms_delay
0116 .dbline 129
0116 ; cs5532_soft_rst(); //软件复位
0116 9CDF xcall _cs5532_soft_rst
0118 .dbline -2
0118 L31:
0118 .dbline 0 ; func end
0118 0895 ret
011A .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\CS5532\firmware\cs5532.c
0000 _cs5532_buf::
0000 .blkb 4
0004 .dbsym e cs5532_buf _cs5532_buf A[4:4]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -