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

📄 vs1003b.lst

📁 VS1003b音频芯片
💻 LST
📖 第 1 页 / 共 4 页
字号:
   1               		.file	"VS1003B.c"
   2               	__SREG__ = 0x3f
   3               	__SP_H__ = 0x3e
   4               	__SP_L__ = 0x3d
   5               	__tmp_reg__ = 0
   6               	__zero_reg__ = 1
   7               		.global __do_copy_data
   8               		.global __do_clear_bss
  10               		.text
  11               	.Ltext0:
  70               	.global	VS1003B_SPI_Low
  72               	VS1003B_SPI_Low:
   1:VS1003B\VS1003B.c **** /*******************************************************************/
   2:VS1003B\VS1003B.c **** /*          VS1003 diriver for  Mega8 MP3 Player                   */
   3:VS1003B\VS1003B.c **** /*                                                                 */
   4:VS1003B\VS1003B.c **** /* Platform   : AVRStudio4.13 b528 + WinAVR20070122                */
   5:VS1003B\VS1003B.c **** /*              optimize -0s                                       */
   6:VS1003B\VS1003B.c **** /* Author     : bozai(Zhang Qibo)                                  */
   7:VS1003B\VS1003B.c **** /* E-mail     : sudazqb@163.com                                    */
   8:VS1003B\VS1003B.c **** /* MSN        : zhangqibo_1985@hotmail.com                         */
   9:VS1003B\VS1003B.c **** /* Date       : 2006-05-09                                         */
  10:VS1003B\VS1003B.c **** /*******************************************************************/
  11:VS1003B\VS1003B.c **** /*2007-11-22: add bass tremble control                             */
  12:VS1003B\VS1003B.c **** /*2007-10-21: add new functions,                                   */
  13:VS1003B\VS1003B.c **** /*2007-10-19: use new delay function                               */
  14:VS1003B\VS1003B.c **** /*2007-05-04: add slow start up code, and add enough delay         */
  15:VS1003B\VS1003B.c **** /*2007-04-21:                                                      */
  16:VS1003B\VS1003B.c **** 
  17:VS1003B\VS1003B.c **** 
  18:VS1003B\VS1003B.c **** #include<avr/io.h>
  19:VS1003B\VS1003B.c **** #include"VS1003B.h"
  20:VS1003B\VS1003B.c **** #include<util/delay.h>
  21:VS1003B\VS1003B.c **** 
  22:VS1003B\VS1003B.c **** #define uchar unsigned char
  23:VS1003B\VS1003B.c **** #define uint  unsigned int
  24:VS1003B\VS1003B.c **** 
  25:VS1003B\VS1003B.c **** void VS1003B_SPI_Low(void);//low spi clk
  26:VS1003B\VS1003B.c **** void VS1003B_SPI_High(void);//high spi clk
  27:VS1003B\VS1003B.c **** unsigned char VS1003B_WriteByte(unsigned char CH);//spi write a byte
  28:VS1003B\VS1003B.c **** void VS1003B_WriteCMD(unsigned char addr, unsigned int dat);//write register 
  29:VS1003B\VS1003B.c **** unsigned int VS1003B_ReadCMD(unsigned char addr);//read register 
  30:VS1003B\VS1003B.c **** 
  31:VS1003B\VS1003B.c **** 
  32:VS1003B\VS1003B.c **** 
  33:VS1003B\VS1003B.c **** /* Run at the loweset spi speed, clk should below 12.288M/6 */
  34:VS1003B\VS1003B.c **** void VS1003B_SPI_Low(void)
  35:VS1003B\VS1003B.c **** {
  73               	* prologue end (size=0) */
  75               	.LM1:
  76               		ldi r24,lo8(83)
  77               		out 45-0x20,r24
  36:VS1003B\VS1003B.c **** 	SPCR =   _BV(SPE)|_BV(MSTR)|_BV(SPR1)|_BV(SPR0);
  78               	bn	68,0,37,.LM2-.LFBB1
  79               	.LM2:
  80 0000 83E5      		cbi 46-0x20,0
  81 0002 8DB9      	/* epilogue: frame size=0 */
  37:VS1003B\VS1003B.c **** 	SPSR &= ~_BV(SPI2X);
  82               	
  83               	/* epilogue end (size=1) */
  84 0004 7098      	/* function VS1003B_SPI_Low size 4 (3) */
  86 0006 0895      	.Lscope1:
  88               	.global	VS1003B_SPI_High
  90               	VS1003B_SPI_High:
  92               	.LM3:
  93               	.LFBB2:
  94               	/* prologue: frame size=0 */
  38:VS1003B\VS1003B.c **** }
  39:VS1003B\VS1003B.c **** 
  40:VS1003B\VS1003B.c **** /* High speed, should not exceed 49.512MHz/6 */
  41:VS1003B\VS1003B.c **** void VS1003B_SPI_High(void)
  42:VS1003B\VS1003B.c **** {
  95               	end (size=0) */
  97               	.LM4:
  98               		ldi r24,lo8(80)
  99               		out 45-0x20,r24
  43:VS1003B\VS1003B.c **** 	SPCR =  _BV(SPE)|_BV(MSTR);
 100               	bn	68,0,44,.LM5-.LFBB2
 101               	.LM5:
 102 0008 80E5      		sbi 46-0x20,0
 103 000a 8DB9      	/* epilogue: frame size=0 */
  44:VS1003B\VS1003B.c **** 	SPSR |= _BV(SPI2X);
 104               	
 105               	/* epilogue end (size=1) */
 106 000c 709A      	/* function VS1003B_SPI_High size 4 (3) */
 108 000e 0895      	.Lscope2:
 111               	.global	VS1003B_WriteByte
 113               	VS1003B_WriteByte:
 115               	.LM6:
 116               	.LFBB3:
 117               	/* prologue: frame size=0 */
  45:VS1003B\VS1003B.c **** }
  46:VS1003B\VS1003B.c **** 
  47:VS1003B\VS1003B.c **** /* write one byte to vs1003 */
  48:VS1003B\VS1003B.c **** unsigned char VS1003B_WriteByte(unsigned char CH)
  49:VS1003B\VS1003B.c **** {   
 118               	nd (size=0) */
 120               	.LM7:
 121               		out 47-0x20,r24
 122               	.L6:
  50:VS1003B\VS1003B.c **** 	SPDR = CH;
 123               	bn	68,0,51,.LM8-.LFBB3
 124               	.LM8:
 125 0010 8FB9      		sbis 46-0x20,7
 126               		rjmp .L6
  51:VS1003B\VS1003B.c **** 	while(!(SPSR & _BV(SPIF)));
 127               	abn	68,0,52,.LM9-.LFBB3
 128               	.LM9:
 129 0012 779B      		in r24,47-0x20
  52:VS1003B\VS1003B.c **** 	return SPDR;
 131               	0:
 132               		ldi r25,lo8(0)
 133 0016 8FB1      	/* epilogue: frame size=0 */
  53:VS1003B\VS1003B.c **** }
 134               	t
 135               	/* epilogue end (size=1) */
 136 0018 90E0      	/* function VS1003B_WriteByte size 6 (5) */
 138 001a 0895      	.Lscope3:
 140               	.global	VS1003B_ReadByte
 142               	VS1003B_ReadByte:
 144               	.LM11:
 145               	.LFBB4:
 146               	/* prologue: frame size=0 */
  54:VS1003B\VS1003B.c **** 
  55:VS1003B\VS1003B.c **** /* read one byte from vs1003 */
  56:VS1003B\VS1003B.c **** unsigned char VS1003B_ReadByte()
  57:VS1003B\VS1003B.c **** {
 147               	nd (size=0) */
 149               	.LM12:
 150               		ldi r24,lo8(-1)
 151               		out 47-0x20,r24
  58:VS1003B\VS1003B.c ****     	SPDR = 0xff;
 152               	
 154 001c 8FEF      	.LM13:
 155 001e 8FB9      		sbis 46-0x20,7
 156               		rjmp .L12
  59:VS1003B\VS1003B.c **** 	while(!(SPSR & _BV(SPIF)));
 157               	abn	68,0,60,.LM14-.LFBB4
 158               	.LM14:
 159 0020 779B      		in r24,47-0x20
  60:VS1003B\VS1003B.c **** 	return SPDR;
 161               	5:
 162               		ldi r25,lo8(0)
 163 0024 8FB1      	/* epilogue: frame size=0 */
  61:VS1003B\VS1003B.c **** }
 164               	t
 165               	/* epilogue end (size=1) */
 166 0026 90E0      	/* function VS1003B_ReadByte size 7 (6) */
 168 0028 0895      	.Lscope4:
 172               	.global	VS1003B_WriteCMD
 174               	VS1003B_WriteCMD:
 176               	.LM16:
 177               	.LFBB5:
 178               	/* prologue: frame size=0 */
  62:VS1003B\VS1003B.c **** 
  63:VS1003B\VS1003B.c **** /*写寄存器,参数,地址和数据   config register */
  64:VS1003B\VS1003B.c **** void VS1003B_WriteCMD(unsigned char addr, unsigned int dat)
  65:VS1003B\VS1003B.c **** {
 179               	 (size=0) */
 180               		mov r25,r24
 182               	.LM17:
 183               		sbi 56-0x20,7
  66:VS1003B\VS1003B.c **** 	VS1003B_XDCS_H();
 185               	
 186               		cbi 56-0x20,4
 187 002c C79A      	.LBB30:
  67:VS1003B\VS1003B.c **** 	VS1003B_XCS_L();
 188               	BB31:
 190 002e C498      	.LM19:
 191               		ldi r24,lo8(2)
 192               		out 47-0x20,r24
 193               	.L18:
 195 0030 82E0      	.LM20:
 196 0032 8FB9      		sbis 46-0x20,7
 197               		rjmp .L18
 199               	.LM21:
 200 0034 779B      		in r24,47-0x20
 201 0036 00C0      	.LBE31:
 202               	.LBE30:
 203               	.LBB32:
 204 0038 8FB1      	.LBB33:
 206               	.LM22:
 207               		out 47-0x20,r25
 208               	.L20:
 210               	.LM23:
 211 003a 9FB9      		sbis 46-0x20,7
 212               		rjmp .L20
 214               	.LM24:
 215 003c 779B      		in r24,47-0x20
 216 003e 00C0      	.LBE33:
 217               	.LBE32:
 219 0040 8FB1      	.LM25:
 220               		mov r24,r23
 221               		clr r25
  68:VS1003B\VS1003B.c **** 	VS1003B_WriteByte(0x02);
  69:VS1003B\VS1003B.c **** 	VS1003B_WriteByte(addr);
  70:VS1003B\VS1003B.c **** 	VS1003B_WriteByte(dat>>8);
 222               	M26-.LFBB5
 223               	.LM26:
 224 0042 872F      		out 47-0x20,r24
 225 0044 9927      	.L22:
 227               	.LM27:
 228               		sbis 46-0x20,7
 229               		rjmp .L22
 231               	.LM28:
 232               		in r24,47-0x20
 233               	.LBE35:
 234 0048 779B      	.LBE34:
 235 004a 00C0      	.LBB36:
 236               	.LBB37:
 238 004c 8FB1      	.LM29:
 239               		out 47-0x20,r22
 240               	.L24:
 242               	.LM30:
 243               		sbis 46-0x20,7
 244               		rjmp .L24
 246               	.LM31:
 247               		in r24,47-0x20
 248               	.LBE37:
 249 0050 779B      	.LBE36:
 251               	.LM32:
 252               		sbi 56-0x20,4
 253 0054 8FB1      	/* epilogue: frame size=0 */
 254               		ret
 255               	/* epilogue end (size=1) */
  71:VS1003B\VS1003B.c **** 	VS1003B_WriteByte(dat);
  72:VS1003B\VS1003B.c **** 	VS1003B_XCS_H();
 256               	24 (23) */
 258 0056 C49A      	.Lscope5:
 261               	.global	VS1003B_ReadCMD
 263               	VS1003B_ReadCMD:
 265               	.LM33:
 266               	.LFBB6:
 267               	/* prologue: frame size=0 */
 268               	/* prologue end (size=0) */
 269               		mov r25,r24
  73:VS1003B\VS1003B.c **** }
  74:VS1003B\VS1003B.c **** 
  75:VS1003B\VS1003B.c **** /* 读寄存器,参数 地址 返回内容  read register */
  76:VS1003B\VS1003B.c **** unsigned int VS1003B_ReadCMD(unsigned char addr)
  77:VS1003B\VS1003B.c **** {
 270               	9,.LM34-.LFBB6
 271               	.LM34:
 272               		sbi 56-0x20,7
 274               	.LM35:
 275 005a 982F      		cbi 56-0x20,4
  78:VS1003B\VS1003B.c **** 	unsigned int temp;
  79:VS1003B\VS1003B.c **** 	VS1003B_XDCS_H();
 276               	:
 277               	.LBB39:
  80:VS1003B\VS1003B.c **** 	VS1003B_XCS_L();
 279               	36:
 280               		ldi r24,lo8(3)
 281 005e C498      		out 47-0x20,r24
 282               	.L36:
 284               	.LM37:
 285               		sbis 46-0x20,7
 286 0060 83E0      		rjmp .L36
 288               	.LM38:
 289               		in r24,47-0x20
 290               	.LBE39:
 291 0064 779B      	.LBE38:
 292 0066 00C0      	.LBB40:
 293               	.LBB41:
 295 0068 8FB1      	.LM39:
 296               		out 47-0x20,r25
 297               	.L38:
 299               	.LM40:
 300               		sbis 46-0x20,7

⌨️ 快捷键说明

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