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

📄 mp3_player_06.lss

📁 MG64+VS1003+SDCARD+nokia5110 之多的MP3
💻 LSS
📖 第 1 页 / 共 5 页
字号:
    1148:	94 01       	movw	r18, r8
    114a:	40 e0       	ldi	r20, 0x00	; 0
    114c:	50 e0       	ldi	r21, 0x00	; 0
    114e:	c8 01       	movw	r24, r16
    1150:	b7 01       	movw	r22, r14
    1152:	0e 94 42 14 	call	0x2884	; 0x2884 <FAT_LoadPartCluster>
    1156:	88 23       	and	r24, r24
    1158:	71 f0       	breq	.+28     	; 0x1176 <__stack+0x77>
    115a:	ac c2       	rjmp	.+1368   	; 0x16b4 <__stack+0x5b5>
									{
										#if DEBUG
											printf_P(PSTR("\r\nERROR: Faild to load a sector"));
										#endif
										free(buffer);
										return 1;
									}
								}
								else 	/* else just read the next part of the cluster */
								{
									part ++;	/* part ++ */
    115c:	2a 85       	ldd	r18, Y+10	; 0x0a
    115e:	2f 5f       	subi	r18, 0xFF	; 255
    1160:	2a 87       	std	Y+10, r18	; 0x0a
									if(FAT_LoadPartCluster(p,part,buffer))
    1162:	42 2f       	mov	r20, r18
    1164:	55 27       	eor	r21, r21
    1166:	94 01       	movw	r18, r8
    1168:	c8 01       	movw	r24, r16
    116a:	b7 01       	movw	r22, r14
    116c:	0e 94 42 14 	call	0x2884	; 0x2884 <FAT_LoadPartCluster>
    1170:	88 23       	and	r24, r24
    1172:	11 f0       	breq	.+4      	; 0x1178 <__stack+0x79>
    1174:	9f c2       	rjmp	.+1342   	; 0x16b4 <__stack+0x5b5>
									{
										#if DEBUG
											printf_P(PSTR("\r\nERROR: Faild to load a sector"));
										#endif
										free(buffer);
										return 1;
    1176:	1a 86       	std	Y+10, r1	; 0x0a
									}
								}
								sector ++;	/* sector count +=1 */
    1178:	39 85       	ldd	r19, Y+9	; 0x09
    117a:	3f 5f       	subi	r19, 0xFF	; 255
    117c:	39 87       	std	Y+9, r19	; 0x09
    117e:	aa 24       	eor	r10, r10
    1180:	bb 24       	eor	r11, r11
    1182:	1a 82       	std	Y+2, r1	; 0x02
    1184:	19 82       	std	Y+1, r1	; 0x01
    1186:	44 24       	eor	r4, r4
    1188:	55 24       	eor	r5, r5
    118a:	66 24       	eor	r6, r6
    118c:	77 24       	eor	r7, r7
    118e:	1c 86       	std	Y+12, r1	; 0x0c
    1190:	1b 86       	std	Y+11, r1	; 0x0b
    1192:	05 c0       	rjmp	.+10     	; 0x119e <__stack+0x9f>
    1194:	62 e0       	ldi	r22, 0x02	; 2
    1196:	70 e0       	ldi	r23, 0x00	; 0
    1198:	7a 83       	std	Y+2, r23	; 0x02
    119a:	69 83       	std	Y+1, r22	; 0x01
    119c:	1d 82       	std	Y+5, r1	; 0x05
								j = 0;		/* loop value clear to 0*/
							}
							/********************************************************/											  
							min = 0;		/* clear the temp variable for time to 0 */
							sec = 0;
							ms = 0;
							i = 0;		/* for tag use, to ditermin tag like [XX:XX] & [XX:XX:XX] */
							while(1)
							{
								temp = buffer[j++];
    119e:	f4 01       	movw	r30, r8
    11a0:	ea 0d       	add	r30, r10
    11a2:	fb 1d       	adc	r31, r11
    11a4:	d0 80       	ld	r13, Z
    11a6:	08 94       	sec
    11a8:	a1 1c       	adc	r10, r1
    11aa:	b1 1c       	adc	r11, r1

								#if DEBUG
									USART_putchar(temp);
								#endif
														  
								/**********************************************************/
								if(sector == totalsect && j == leftbytes + 1) goto end;	/* file end */
    11ac:	79 85       	ldd	r23, Y+9	; 0x09
    11ae:	88 85       	ldd	r24, Y+8	; 0x08
    11b0:	78 17       	cp	r23, r24
    11b2:	39 f4       	brne	.+14     	; 0x11c2 <__stack+0xc3>
    11b4:	8e 81       	ldd	r24, Y+6	; 0x06
    11b6:	9f 81       	ldd	r25, Y+7	; 0x07
    11b8:	01 96       	adiw	r24, 0x01	; 1
    11ba:	a8 16       	cp	r10, r24
    11bc:	b9 06       	cpc	r11, r25
    11be:	09 f4       	brne	.+2      	; 0x11c2 <__stack+0xc3>
    11c0:	09 c2       	rjmp	.+1042   	; 0x15d4 <__stack+0x4d5>
								if(j == 512)		/* need to read next sector */
    11c2:	90 e0       	ldi	r25, 0x00	; 0
    11c4:	a9 16       	cp	r10, r25
    11c6:	92 e0       	ldi	r25, 0x02	; 2
    11c8:	b9 06       	cpc	r11, r25
    11ca:	09 f0       	breq	.+2      	; 0x11ce <__stack+0xcf>
    11cc:	4b c0       	rjmp	.+150    	; 0x1264 <__stack+0x165>
								{
									if(part == (SectorsPerClust - 1))	/* if need to read next cluster */
    11ce:	aa 85       	ldd	r26, Y+10	; 0x0a
    11d0:	2a 2f       	mov	r18, r26
    11d2:	33 27       	eor	r19, r19
    11d4:	80 91 5a 07 	lds	r24, 0x075A
    11d8:	90 91 5b 07 	lds	r25, 0x075B
    11dc:	01 97       	sbiw	r24, 0x01	; 1
    11de:	28 17       	cp	r18, r24
    11e0:	39 07       	cpc	r19, r25
    11e2:	69 f5       	brne	.+90     	; 0x123e <__stack+0x13f>
									{
										//p=FAT_NextCluster_NEW(p);//读下一簇数据			//read next cluster
										p=FAT_NextCluster(p);
    11e4:	c8 01       	movw	r24, r16
    11e6:	b7 01       	movw	r22, r14
    11e8:	0e 94 7e 14 	call	0x28fc	; 0x28fc <FAT_NextCluster>
    11ec:	7b 01       	movw	r14, r22
    11ee:	8c 01       	movw	r16, r24
										if(p == 0x0fffffff || p == 0x0ffffff8 || (FAT32_Enable == 0 && p == 0xffff))//如果无后续簇则结束,	//no more cluster  
    11f0:	6f 3f       	cpi	r22, 0xFF	; 255
    11f2:	bf ef       	ldi	r27, 0xFF	; 255
    11f4:	7b 07       	cpc	r23, r27
    11f6:	bf ef       	ldi	r27, 0xFF	; 255
    11f8:	8b 07       	cpc	r24, r27
    11fa:	bf e0       	ldi	r27, 0x0F	; 15
    11fc:	9b 07       	cpc	r25, r27
    11fe:	09 f4       	brne	.+2      	; 0x1202 <__stack+0x103>
    1200:	e9 c1       	rjmp	.+978    	; 0x15d4 <__stack+0x4d5>
    1202:	68 5f       	subi	r22, 0xF8	; 248
    1204:	7f 4f       	sbci	r23, 0xFF	; 255
    1206:	8f 4f       	sbci	r24, 0xFF	; 255
    1208:	9f 40       	sbci	r25, 0x0F	; 15
    120a:	09 f4       	brne	.+2      	; 0x120e <__stack+0x10f>
    120c:	e3 c1       	rjmp	.+966    	; 0x15d4 <__stack+0x4d5>
    120e:	80 91 c5 07 	lds	r24, 0x07C5
    1212:	88 23       	and	r24, r24
    1214:	51 f4       	brne	.+20     	; 0x122a <__stack+0x12b>
    1216:	ff ef       	ldi	r31, 0xFF	; 255
    1218:	ef 16       	cp	r14, r31
    121a:	ff ef       	ldi	r31, 0xFF	; 255
    121c:	ff 06       	cpc	r15, r31
    121e:	f0 e0       	ldi	r31, 0x00	; 0
    1220:	0f 07       	cpc	r16, r31
    1222:	f0 e0       	ldi	r31, 0x00	; 0
    1224:	1f 07       	cpc	r17, r31
    1226:	09 f4       	brne	.+2      	; 0x122a <__stack+0x12b>
    1228:	d5 c1       	rjmp	.+938    	; 0x15d4 <__stack+0x4d5>
										{
											#if DEBUG
												printf_P(PSTR("\r\nNo next cluster or read next cluster error"));
											#endif
											goto end;
										}
										part = 0;	/* clear the part count */
										if(FAT_LoadPartCluster(p,part,buffer))
    122a:	94 01       	movw	r18, r8
    122c:	40 e0       	ldi	r20, 0x00	; 0
    122e:	50 e0       	ldi	r21, 0x00	; 0
    1230:	c8 01       	movw	r24, r16
    1232:	b7 01       	movw	r22, r14
    1234:	0e 94 42 14 	call	0x2884	; 0x2884 <FAT_LoadPartCluster>
    1238:	88 23       	and	r24, r24
    123a:	71 f0       	breq	.+28     	; 0x1258 <__stack+0x159>
    123c:	3b c2       	rjmp	.+1142   	; 0x16b4 <__stack+0x5b5>
										{
											#if DEBUG
												printf_P(PSTR("\r\nERROR: Faild to load a sector"));
											#endif
											free(buffer);
											return 1;
										}
									}
									else 	/* else just read the next part of the cluster */
									{
										part ++;	/* part ++ */
    123e:	2a 85       	ldd	r18, Y+10	; 0x0a
    1240:	2f 5f       	subi	r18, 0xFF	; 255
    1242:	2a 87       	std	Y+10, r18	; 0x0a
										if(FAT_LoadPartCluster(p,part,buffer))
    1244:	42 2f       	mov	r20, r18
    1246:	55 27       	eor	r21, r21
    1248:	94 01       	movw	r18, r8
    124a:	c8 01       	movw	r24, r16
    124c:	b7 01       	movw	r22, r14
    124e:	0e 94 42 14 	call	0x2884	; 0x2884 <FAT_LoadPartCluster>
    1252:	88 23       	and	r24, r24
    1254:	11 f0       	breq	.+4      	; 0x125a <__stack+0x15b>
    1256:	2e c2       	rjmp	.+1116   	; 0x16b4 <__stack+0x5b5>
										{
											#if DEBUG
												printf_P(PSTR("\r\nERROR: Faild to load a sector"));
											#endif
											free(buffer);
											return 1;
    1258:	1a 86       	std	Y+10, r1	; 0x0a
										}
									}
									sector ++;	/* sector count +=1 */
    125a:	39 85       	ldd	r19, Y+9	; 0x09
    125c:	3f 5f       	subi	r19, 0xFF	; 255
    125e:	39 87       	std	Y+9, r19	; 0x09
    1260:	aa 24       	eor	r10, r10
    1262:	bb 24       	eor	r11, r11
									j = 0;		/* loop value clear to 0*/
								}
								/***********************************************/														  
								if((temp < '0' || temp > '9') && temp != ':' && temp != '.')break;	/* end or not a leagal ch*/
    1264:	8d 2d       	mov	r24, r13
    1266:	80 53       	subi	r24, 0x30	; 48
    1268:	8b 30       	cpi	r24, 0x0B	; 11
    126a:	28 f0       	brcs	.+10     	; 0x1276 <__stack+0x177>
    126c:	6e e2       	ldi	r22, 0x2E	; 46
    126e:	d6 16       	cp	r13, r22
    1270:	09 f4       	brne	.+2      	; 0x1274 <__stack+0x175>
    1272:	90 cf       	rjmp	.-224    	; 0x1194 <__stack+0x95>
    1274:	63 c0       	rjmp	.+198    	; 0x133c <__stack+0x23d>
								if(temp == ':'){i=1;continue;}
    1276:	7a e3       	ldi	r23, 0x3A	; 58
    1278:	d7 16       	cp	r13, r23
    127a:	29 f4       	brne	.+10     	; 0x1286 <__stack+0x187>
    127c:	81 e0       	ldi	r24, 0x01	; 1
    127e:	90 e0       	ldi	r25, 0x00	; 0
    1280:	9a 83       	std	Y+2, r25	; 0x02
    1282:	89 83       	std	Y+1, r24	; 0x01
    1284:	8c cf       	rjmp	.-232    	; 0x119e <__stack+0x9f>
								if(temp == '.'){i=2;mscnt = 0;continue;}
    1286:	9e e2       	ldi	r25, 0x2E	; 46
    1288:	d9 16       	cp	r13, r25
    128a:	09 f4       	brne	.+2      	; 0x128e <__stack+0x18f>
    128c:	83 cf       	rjmp	.-250    	; 0x1194 <__stack+0x95>

								/* calculate the value  */
								if(i==0)min = min*10 + (temp-0x30);
    128e:	a9 81       	ldd	r26, Y+1	; 0x01
    1290:	ba 81       	ldd	r27, Y+2	; 0x02
    1292:	ab 2b       	or	r26, r27
    1294:	89 f4       	brne	.+34     	; 0x12b8 <__stack+0x1b9>
    1296:	c2 01       	movw	r24, r4
    1298:	e3 e0       	ldi	r30, 0x03	; 3
    129a:	88 0f       	add	r24, r24
    129c:	99 1f       	adc	r25, r25
    129e:	ea 95       	dec	r30
    12a0:	e1 f7       	brne	.-8      	; 0x129a <__stack+0x19b>
    12a2:	44 0c       	add	r4, r4
    12a4:	55 1c       	adc	r5, r5
    12a6:	48 0e       	add	r4, r24
    12a8:	59 1e       	adc	r5, r25
    12aa:	4d 0c       	add	r4, r13
    12ac:	51 1c       	adc	r5, r1
    12ae:	e0 ed       	ldi	r30, 0xD0	; 208
    12b0:	ff ef       	ldi	r31, 0xFF	; 255
    12b2:	4e 0e       	add	r4, r30
    12b4:	5f 1e       	adc	r5, r31
    12b6:	73 cf       	rjmp	.-282    	; 0x119e <__stack+0x9f>
								else if(i==1)sec = sec*10 + (temp-0x30);
    12b8:	29 81       	ldd	r18, Y+1	; 0x01
    12ba:	3a 81       	ldd	r19, Y+2	; 0x02
    12bc:	21 30       	cpi	r18, 0x01	; 1
    12be:	31 05       	cpc	r19, r1
    12c0:	89 f4       	brne	.+34     	; 0x12e4 <__stack+0x1e5>
    12c2:	c3 01       	movw	r24, r6
    12c4:	63 e0       	ldi	r22, 0x03	; 3
    12c6:	88 0f       	add	r24, r24
    12c8:	99 1f       	adc	r25, r25
    12ca:	6a 95       	dec	r22
    12cc:	e1 f7       	brne	.-8      	; 0x12c6 <__stack+0x1c7>
    12ce:	66 0c       	add	r6, r6
    12d0:	77 1c       	adc	r7, r7
    12d2:	68 0e       	add	r6, r24
    12d4:	79 1e       	adc	r7, r25
    12d6:	6d 0c       	add	r6, r13
    12d8:	71 1c       	adc	r7, r1
    12da:	60 ed       	ldi	r22, 0xD0	; 208
    12dc:	7f ef       	ldi	r23, 0xFF	; 255
    12de:	66 0e       	add	r6, r22
    12e0:	77 1e       	adc	r7, r23
    12e2:	5d cf       	rjmp	.-326    	; 0x119e <__stack+0x9f>
								else 
								{
									if(mscnt == 0)
    12e4:	7d 81       	ldd	r23, Y+5	; 0x05
    12e6:	77 23       	and	r23, r23
    12e8:	69 f4       	brne	.+26     	; 0

⌨️ 快捷键说明

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