پاسخ : پخش فایل MP3 با VS1003 و ضبط صدا با فرمت WAV با همین آی سی
مرسی از جوابت آخه تو این برد جدیده از spi سخت افزاری استفاده کردم برا همین برام سوال شده بود اما الان متوجه شدم دستت دردنکنه من یاد mmc نبودم
برنامم اینه البته همون برنامه آقای _e_ با یکم تغییر البته هنوز این برنامه رو کامل تست نکردم
مرسی از جوابت آخه تو این برد جدیده از spi سخت افزاری استفاده کردم برا همین برام سوال شده بود اما الان متوجه شدم دستت دردنکنه من یاد mmc نبودم
برنامم اینه البته همون برنامه آقای _e_ با یکم تغییر البته هنوز این برنامه رو کامل تست نکردم
کد:
$regfile = "M128def.dat " $crystal = 8000000 $swstack = 128 $hwstack = 128 $framesize = 128 '--------------------------------------------------------------------------------- Config Lcd = 16 * 2 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Pine.0 , E = Pine.2 , Db4 = Pine.4 , Db5 = Pine.5 , Db6 = Pine.6 , Db7 = Pine.7 Dreq Alias Pind.4 Mmc_csn Alias Portb.0 Xcs Alias Portd.2 Xdcs Alias Portd.3 Xrst Alias Portd.5 Sled Alias Portd.1 Config Dreq = Input Config Mmc_csn = Output Config Xcs = Output Config Xdcs = Output Config Sled = Output '------------------------------------------------------------------------------- Dim B As Byte Dim A1 As Byte Dim A2 As Byte Dim L As Byte Dim Ff As Byte Dim S As String * 30 Dim Diskf As Long Dim Disks As Long Dim Vs_w As Byte Dim Vs_r As Byte Dim Sc_mode_ad As Byte Dim Sc_bass_ad As Byte Dim Sc_clockf_ad As Byte Dim Sc_aiaddr_ad As Byte Dim Sc_vol_ad As Byte Dim I As Word Dim Buffer(512) As Byte Dim Sfilename As String * 20 '------------------------------------------------------------------------------- Vs_w = 2 Vs_r = 3 Sc_mode_ad = 0 Sc_bass_ad = 2 Sc_clockf_ad = 3 Sc_aiaddr_ad = 10 Sc_vol_ad = 11 Sled = 0 '------------------------------------------------------------------------------- Set Xcs Set Xdcs Set Xrst Lcd "shoro" Bitwait Dreq , Set Reset Mmc_csn Cursor Off Cls Lcd "Initiation..." Set Sled $include "Config_AVR-DOS.BAS" $include "Config_MMC.bas" Ff = Drivereset() Ff = Driveinit() If Gbdriveerror <> 0 Then Cls Lcd "Error Config" Locate 2 , 1 Lcd Gbdriveerror End End If Lcd "DOS & MMC Inited" Reset Sled Wait 2 Set Sled Cls Lcd "Initializing FAT" Locate 2 , 1 B = Initfilesystem(1) If B <> 0 Then Lcd "Error On File System" Wait 1 Cls Lcd "Sorry!" Locate 2 , 1 Lcd "Good Bye..." End Else Reset Sled Lcd "FAT Initialized" End If Wait 2 Cls Lcd "DOS Version: " ; Ver() Wait 2 '------------------------------------------------------------------------------- '------------------------------- shorooeh barnameh ------------------------------ '------------------------------------------------------------------------------- Cls Lcd "Introducing..." Locate 2 , 1 Lcd "VS1003 !!!" Wait 2 Set Mmc_csn Set Sled Lcd "Reseting VS1003." Reset Xrst Waitms 1 Set Xrst Waitus 500 Bitwait Dreq , Set Reset Sled Cls Lcd "Initializing VS" Set Sled Reset Xcs Spiout Vs_w , 1 Spiout Sc_mode_ad , 1 'Halate Kariyeh VS1003 A1 = 8 A2 = 0 Spiout A1 , 1 Spiout A2 , 1 Set Xcs Waitus 500 Bitwait Dreq , Set Reset Xcs Spiout Vs_w , 1 Spiout Sc_bass_ad , 1 'Tanzime Bass va Treble A1 = &H80 A2 = 0 Spiout A1 , 1 Spiout A2 , 1 Set Xcs Waitus 500 Bitwait Dreq , Set Reset Xcs Spiout Vs_w , 1 Spiout Sc_clockf_ad , 1 'Tanzimeh Clock va PLL bar royeh Adade 3 '0x8000 A1 = &H80 A2 = 0 Spiout A1 , 1 Spiout A2 , 1 Set Xcs Waitus 500 Bitwait Dreq , Set Reset Xcs Spiout Vs_w , 1 Spiout Sc_aiaddr_ad , 1 'Barnameyeh Karbari Nadarim A1 = 0 A2 = 0 Spiout A1 , 1 Spiout A2 , 1 Set Xcs Waitus 500 Bitwait Dreq , Set Reset Xcs Spiout Vs_w , 1 Spiout Sc_vol_ad , 1 'Tanzime Volume Rooyeh Haddeaksar A1 = 0 A2 = 0 Spiout A1 , 1 Spiout A2 , 1 Set Xcs Waitus 500 Bitwait Dreq , Set Cls Lcd "VS1003 initiated" Reset Sled Wait 1 Reset Mmc_csn Sfilename = Dir( "*.mp3") While Len(sfilename) > 0 Cls Lcd "playing file:" Sfilename = Dir() Ff = Freefile() Open Sfilename For Binary As #ff Locate 2 , 1 Lcd Sfilename Wait 2 Do Reset Mmc_csn Get #ff , Buffer(1) , , 512 Set Mmc_csn Toggle Sled Reset Xdcs For I = 1 To 512 Spiout Buffer(i) , 1 Toggle Sled Bitwait Dreq , Set Next I Set Xdcs Loop Until Eof(#ff) <> 0 Cls Close #ff Lcd "amadeh barayeh pakhshe badi" Wait 2 Lcd "Reseting VS1003." Reset Xrst Waitms 1 Set Xrst Waitus 500 Bitwait Dreq , Set Reset Sled Wait 4 Cls Locate 1 , 1 Wend Lcd "Ended." End
دیدگاه