📄 vs1003.txt
字号:
000040 f7fffffe BL Delay
;;;120 Mp3SoftReset(); //vs1003软复位
000044 e8bd4010 POP {r4,lr}
000048 f7ffbffe B.W Mp3SoftReset
;;;121
;;;122 }
;;;123
ENDP
|L6.76|
00004c 4001080c DCD 0x4001080c
AREA ||i.VsSineTest||, CODE, READONLY, ALIGN=2
VsSineTest PROC
;;;131 void VsSineTest(void)
;;;132 {
000000 b570 PUSH {r4-r6,lr}
000002 4c61 LDR r4,|L7.392|
;;;133 Mp3PutInReset(); //xReset = 0 复位vs1003
000004 6820 LDR r0,[r4,#0]
000006 f0200001 BIC r0,r0,#1
00000a 6020 STR r0,[r4,#0]
;;;134 Mp3Reset();
00000c f7fffffe BL Mp3Reset
;;;135 Delay(1000);//wait(100); //延时100ms
000010 f44f757a MOV r5,#0x3e8
000014 4628 MOV r0,r5
000016 f7fffffe BL Delay
;;;136 SPIPutChar(0xff);//发送一个字节的无效数据,启动SPI传输
00001a 20ff MOVS r0,#0xff
00001c f7fffffe BL SPIPutChar
;;;137 Mp3DeselectControl();
000020 6820 LDR r0,[r4,#0]
000022 f0400002 ORR r0,r0,#2
000026 6020 STR r0,[r4,#0]
;;;138 Mp3DeselectData();
000028 6820 LDR r0,[r4,#0]
00002a f0400004 ORR r0,r0,#4
00002e 6020 STR r0,[r4,#0]
;;;139 Mp3ReleaseFromReset();
000030 6820 LDR r0,[r4,#0]
000032 f0400001 ORR r0,r0,#1
000036 6020 STR r0,[r4,#0]
000038 f6a4040c SUB r4,r4,#0x80c
;;;140
;;;141 Mp3Reset();
00003c f7fffffe BL Mp3Reset
;;;142 Delay(500);//wait(100);
000040 106e ASRS r6,r5,#1
000042 4630 MOV r0,r6
000044 f7fffffe BL Delay
;;;143
;;;144 Mp3SetVolume(50,50);//设置音量
000048 2232 MOVS r2,#0x32
00004a 4611 MOV r1,r2
00004c 200b MOVS r0,#0xb
00004e f7fffffe BL Mp3WriteRegister
;;;145
;;;146 Mp3WriteRegister(SPI_MODE,0x08,0x20);//进入vs1003的测试模式
000052 2220 MOVS r2,#0x20
000054 2108 MOVS r1,#8
000056 2000 MOVS r0,#0
000058 f7fffffe BL Mp3WriteRegister
;;;147 Delay(500);
00005c 4630 MOV r0,r6
00005e f7fffffe BL Delay
;;;148 while (GPIO_ReadInputData(GPIOA) & MP3_DREQ == 0); //等待DREQ为高
000062 4849 LDR r0,|L7.392|
000064 380c SUBS r0,r0,#0xc
000066 f7fffffe BL GPIO_ReadInputData
00006a f604040c ADD r4,r4,#0x80c
;;;149
;;;150 Mp3SelectData(); //xDCS = 1,选择vs1003的数据接口
00006e 6820 LDR r0,[r4,#0]
000070 f0200004 BIC r0,r0,#4
000074 6020 STR r0,[r4,#0]
;;;151
;;;152 //向vs1003发送正弦测试命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
;;;153 //其中n = 0x24, 设定vs1003所产生的正弦波的频率值,具体计算方法见vs1003的datasheet
;;;154 SPIPutChar(0x53);
000076 2053 MOVS r0,#0x53
000078 f7fffffe BL SPIPutChar
;;;155 SPIPutChar(0xef);
00007c 20ef MOVS r0,#0xef
00007e f7fffffe BL SPIPutChar
;;;156 SPIPutChar(0x6e);
000082 206e MOVS r0,#0x6e
000084 f7fffffe BL SPIPutChar
;;;157 SPIPutChar(0x24);
000088 2024 MOVS r0,#0x24
00008a f7fffffe BL SPIPutChar
;;;158 SPIPutChar(0x00);
00008e 2000 MOVS r0,#0
000090 f7fffffe BL SPIPutChar
;;;159 SPIPutChar(0x00);
000094 2000 MOVS r0,#0
000096 f7fffffe BL SPIPutChar
;;;160 SPIPutChar(0x00);
00009a 2000 MOVS r0,#0
00009c f7fffffe BL SPIPutChar
;;;161 SPIPutChar(0x00);
0000a0 2000 MOVS r0,#0
0000a2 f7fffffe BL SPIPutChar
;;;162 Delay(1000);
0000a6 4628 MOV r0,r5
0000a8 f7fffffe BL Delay
;;;163 Mp3DeselectData();//程序执行到这里后应该能从耳机听到一个单一频率的声音
0000ac 6820 LDR r0,[r4,#0]
0000ae f0400004 ORR r0,r0,#4
0000b2 6020 STR r0,[r4,#0]
;;;164
;;;165 //退出正弦测试
;;;166 Mp3SelectData();
0000b4 6820 LDR r0,[r4,#0]
0000b6 f0200004 BIC r0,r0,#4
0000ba 6020 STR r0,[r4,#0]
;;;167 SPIPutChar(0x45);
0000bc 2045 MOVS r0,#0x45
0000be f7fffffe BL SPIPutChar
;;;168 SPIPutChar(0x78);
0000c2 2078 MOVS r0,#0x78
0000c4 f7fffffe BL SPIPutChar
;;;169 SPIPutChar(0x69);
0000c8 2069 MOVS r0,#0x69
0000ca f7fffffe BL SPIPutChar
;;;170 SPIPutChar(0x74);
0000ce 2074 MOVS r0,#0x74
0000d0 f7fffffe BL SPIPutChar
;;;171 SPIPutChar(0x00);
0000d4 2000 MOVS r0,#0
0000d6 f7fffffe BL SPIPutChar
;;;172 SPIPutChar(0x00);
0000da 2000 MOVS r0,#0
0000dc f7fffffe BL SPIPutChar
;;;173 SPIPutChar(0x00);
0000e0 2000 MOVS r0,#0
0000e2 f7fffffe BL SPIPutChar
;;;174 SPIPutChar(0x00);
0000e6 2000 MOVS r0,#0
0000e8 f7fffffe BL SPIPutChar
;;;175 Delay(1000);
0000ec 4628 MOV r0,r5
0000ee f7fffffe BL Delay
;;;176 Mp3DeselectData();
0000f2 6820 LDR r0,[r4,#0]
0000f4 f0400004 ORR r0,r0,#4
0000f8 6020 STR r0,[r4,#0]
;;;177
;;;178 //再次进入正弦测试并设置n值为0x44,即将正弦波的频率设置为另外的值
;;;179 Mp3SelectData();
0000fa 6820 LDR r0,[r4,#0]
0000fc f0200004 BIC r0,r0,#4
000100 6020 STR r0,[r4,#0]
;;;180 SPIPutChar(0x53);
000102 2053 MOVS r0,#0x53
000104 f7fffffe BL SPIPutChar
;;;181 SPIPutChar(0xef);
000108 20ef MOVS r0,#0xef
00010a f7fffffe BL SPIPutChar
;;;182 SPIPutChar(0x6e);
00010e 206e MOVS r0,#0x6e
000110 f7fffffe BL SPIPutChar
;;;183 SPIPutChar(0x44);
000114 2044 MOVS r0,#0x44
000116 f7fffffe BL SPIPutChar
;;;184 SPIPutChar(0x00);
00011a 2000 MOVS r0,#0
00011c f7fffffe BL SPIPutChar
;;;185 SPIPutChar(0x00);
000120 2000 MOVS r0,#0
000122 f7fffffe BL SPIPutChar
;;;186 SPIPutChar(0x00);
000126 2000 MOVS r0,#0
000128 f7fffffe BL SPIPutChar
;;;187 SPIPutChar(0x00);
00012c 2000 MOVS r0,#0
00012e f7fffffe BL SPIPutChar
;;;188 Delay(1000);
000132 4628 MOV r0,r5
000134 f7fffffe BL Delay
;;;189 Mp3DeselectData();
000138 6820 LDR r0,[r4,#0]
00013a f0400004 ORR r0,r0,#4
00013e 6020 STR r0,[r4,#0]
;;;190
;;;191 //退出正弦测试
;;;192 Mp3SelectData();
000140 6820 LDR r0,[r4,#0]
000142 f0200004 BIC r0,r0,#4
000146 6020 STR r0,[r4,#0]
;;;193 SPIPutChar(0x45);
000148 2045 MOVS r0,#0x45
00014a f7fffffe BL SPIPutChar
;;;194 SPIPutChar(0x78);
00014e 2078 MOVS r0,#0x78
000150 f7fffffe BL SPIPutChar
;;;195 SPIPutChar(0x69);
000154 2069 MOVS r0,#0x69
000156 f7fffffe BL SPIPutChar
;;;196 SPIPutChar(0x74);
00015a 2074 MOVS r0,#0x74
00015c f7fffffe BL SPIPutChar
;;;197 SPIPutChar(0x00);
000160 2000 MOVS r0,#0
000162 f7fffffe BL SPIPutChar
;;;198 SPIPutChar(0x00);
000166 2000 MOVS r0,#0
000168 f7fffffe BL SPIPutChar
;;;199 SPIPutChar(0x00);
00016c 2000 MOVS r0,#0
00016e f7fffffe BL SPIPutChar
;;;200 SPIPutChar(0x00);
000172 2000 MOVS r0,#0
000174 f7fffffe BL SPIPutChar
;;;201 Delay(1000);
000178 4628 MOV r0,r5
00017a f7fffffe BL Delay
;;;202 Mp3DeselectData();
00017e 6820 LDR r0,[r4,#0]
000180 f0400004 ORR r0,r0,#4
000184 6020 STR r0,[r4,#0]
;;;203
;;;204 }
000186 bd70 POP {r4-r6,pc}
;;;205
ENDP
|L7.392|
000188 4001080c DCD 0x4001080c
AREA ||i.Mp3ReadRegister||, CODE, READONLY, ALIGN=2
Mp3ReadRegister PROC
;;;272 u16 Mp3ReadRegister(unsigned char addressbyte)
;;;273 {
000000 b570 PUSH {r4-r6,lr}
000002 4c0d LDR r4,|L8.56|
000004 4603 MOV r3,r0
;;;274 u16 resultvalue = 0;
;;;275 Mp3DeselectData();
000006 6820 LDR r0,[r4,#0]
000008 f0400004 ORR r0,r0,#4
00000c 6020 STR r0,[r4,#0]
;;;276 Mp3SelectControl(); //XCS = 0
00000e 6820 LDR r0,[r4,#0]
000010 f0200002 BIC r0,r0,#2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -