freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于sd卡的mp3播放器設(shè)計(參考版)

2024-11-12 05:28本頁面
  

【正文】 } return (unsigned long)sector。 } else { offset=cluster%256。 if(FAT32_Enable) 31 { offset=cluster%128。} //calculate the actual sector sector=FirstFATSector+offset。 if(cluster2){put_s(fat_next exit many)。 else offset = cluster/256。 DWORD offset。 else return 0。 //calculate the actual sector number sector=FirstDataSector+(DWORD)(cluster2)*(DWORD)SectorsPerClust。 return 0。 usart_send(FirstDataSector)。 usart_send(RootDirSectors)。 usart_send(RootDirCount)。 usart_send(FirstFATSector8)。 usart_send(BytesPerSector8)。 FirstDataSector = FirstDirSector+RootDirSectors。 RootDirSectors = (RootDirCount*32)9。 FirstFATSector = bpbbpbResSectors+hidsec。 } 30 BytesPerSector = bpbbpbBytesPerSec。 //FAT32 //the sectors number occupied by one fat talbe FATsectors = bpbbpbBigFATsecs。 FirstDirClust = 2。 //detemine thd FAT type //do not support FAT12 if(bpbbpbFATsecs) { FAT32_Enable=0。 bsbsJump[0]!=0xEB) { return 1。 } //deal with the card which has no bootsect if(bsbsJump[0]!=0xE9 amp。 //the hidden sectors if(FAT_ReadSector(prprStartLBA,buffer))return 1。 bsbsJump[0]!=0xEB) { pr = (struct partrecord *)((struct partsector *)buffer)psPart。 if(bsbsJump[0]!=0xE9 amp。j++) { usart_send(buffer[16*i+j])。i++) { for(j=0。 for(i=0。return 1。 put_s(ready readblock !)。 WORD hidsec=0。 29 struct bpb710 *bpb = 0。 //temporarily buffer for file information struct FileInfoStruct FileInfo。 write single block //wirte sector are not use in this player //SD read BYTE (* FAT_ReadSector)(DWORD sector, unsigned char *buffe)=sd_read_block。 BYTE (* FAT_WriteSector)(DWORD,BYTE *)。 // The count of directory in root dir BYTE FAT32_Enable。 // The first Dir sector WORD RootDirSectors。 // Sector per cluster DWORD FirstFATSector。 // Bytes per sector WORD FATsectors。 //first directory cluster DWORD FirstDataSector。 } } } include extern BYTE buffer[512]。 if(songstotalsongs)songs=1。amp。 //read next cluster p=FAT_NextCluster(p)。 } sector++。 break。 } //file ended if(count == 511) { if(VS1003B_ReadCMD(0x04)!=0) put_s(get decoder time)。 } } } i=SectorsPerClust。 } spi_to_high()。j++) { VS1003B_WriteDAT(0x00)。 _BV(VS1003B_DREQ))!=0 ) { for(j=0。 count = leftbytes) { //waiting the midi file was decoded if(type == MID) { //according datasheet, must send 2048 zeros for the med format count=0。 } //if this is the end of the file if(sector == totalsect amp。j++) { VS1003B_WriteDAT(buffer[count])。 flag) { //write 32 Bytes once for(j=0。 _BV(VS1003B_DREQ))!=0 amp。 while(count512) { 27 spi_to_high()。j++) {usart_send(buffer[j])。 //read a sector for(j=0。iSectorsPerClust。 while(1) { put_s(in dead rotate)。 VS1003B_SoftReset()。 sector=0。 //calculate the left bytes put_s( )。 //the first cluster of the file totalsect = 。type)。MusicInfo,amp。 if(count == 2047)break。 //fill 0 count++。j32。 _BV(VS1003B_DREQ))!=0) { put_s(1003qreq success!)。 (type != MID)) { put_s(ready in vs1003 busy!)。 //remand 2048 zeros honoring DREQ befor soft reset while(count2048 amp。 //label for goto,begin next song 26 next: count=0。} else put_s(have some music:)。 if(totalsongs==0){put_s(no music!)。totalsongs, amp。 //also can find music in the child content ,for example Search (\\new\\mp3, amp。totalsongs,amp。 //search the music file, unincluding its child content Search(\\,amp。 } } return 0x00。 } case 6: { break。 // goto next。 else songs。 break。 return 0x55。 songs++。 break。 if(vol=0x0101) vol=0x0101。 break。 if(vol=0xFEFE) vol=0xFEFE。 break。 else flag=1。 if( (Pkey=scan_keyboard())!=0 ) { put_s(one key be pressed)。put_s(fat16 !!)。put_s(fat32 !!)。 else put_s(fat init failed !)。 } else { put_s(sd init finished !!!)。 if(sd_init() == 0x01) { printlcd(1,0,sd init fail !)。 // the fuction has been call in vs1003_init() if(vs1003_init() == 0) put_s(the vs1003b init finished!)。 24 put_s(keyboard init finished !)。 put_s(usart init finished !)。 put_s(TS1602 init finished !)。 //delay /* the system initialization */ void sys_init( void ) { init_ts1602()。 //total songs in the root directery on the SD card uint8 type。 uint8 true。 //default volume uint16 songs=1。 //recod the current sector to judge the end sector uint8 flag。 //cotain the total sector number of a file uint16 leftbytes。 //loop variable DWORD p。 //data counting uint8 i。 } } // include uint16 keylen。 while(1) { //play music flag=0。 謝謝大家 ! 附錄 〖附錄 1〗 電路原理圖 成品圖片 23 〖附錄 2〗 部分程序代碼 // includeheader/ unsigned int t。感謝我的父母及兄弟,感謝他們一直以來對我的支持和鼓勵,對我的關(guān)心和照顧。許老師平易隨和、治學(xué)認(rèn)真嚴(yán)謹(jǐn),和他在一起的時光總是充滿歡笑。他們嚴(yán)謹(jǐn)?shù)闹?學(xué)態(tài)度、對問題深刻的洞察力,也使我獲益良多,十分感謝許老師在生活上對我的關(guān)心和幫助。 首先感謝我的導(dǎo)師許麗佳老師以及吳維雄老師和陳松柏老師。 參考文獻(xiàn) : [1] CECA .Chain Electronic Components Association[OL]. ,2020 [2] 沈磊 .基于 ColdFire 和 uCLinux 的便攜式多媒體播放器軟件系統(tǒng)的設(shè)計與實現(xiàn) [D].上海:上海交通大學(xué) ,2020:1~ 2 [3] ,2020,8 [4] MP3 [OL] . 8,2020,6 [5] 麥建邦 .百度百科 MP3 播放器 [OL]. 136 l,2020,2 [6] 文夢夢 .淺談 MP3 播放器發(fā)展趨勢 [J].PCPOP電腦時尚 ,2020,10(2):19 [7] 譚文杰 .基于 USB 主機(jī)的多媒體播 放器的設(shè)計與實現(xiàn) [D].廣東:中山大學(xué) ,2020:1~ 3 [8] 陳杰 .基于 ARM 平臺的 MP3 編碼器的實現(xiàn)及其性能優(yōu)化 [D].上海:上海
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1