پاسخ : پخش فایل MP3 با VS1003 و ضبط صدا با فرمت WAV با همین آی سی
تو مد جدید همون برنامه ای که آقای _e_ قرار دادن هست دیگه تازه برا تست vs هم یه برنامه گذاشتن
اگه vs سخت افزاری وصل نکردی ام این برنامه بگیر من اینو رو برد اولیم امتحان کردم درستم کار میکرد البته صداش خش داشت که اونم ماله سخت افزارش بود
تو مد جدید همون برنامه ای که آقای _e_ قرار دادن هست دیگه تازه برا تست vs هم یه برنامه گذاشتن
اگه vs سخت افزاری وصل نکردی ام این برنامه بگیر من اینو رو برد اولیم امتحان کردم درستم کار میکرد البته صداش خش داشت که اونم ماله سخت افزارش بود
کد:
$regfile = "m128def.dat"
$crystal = 8000000
$swstack = 128
$hwstack = 128
$framesize = 1024
'--------------------------------------------------------------
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
'----------------------------------------------------------------
'-----------------------------------------------------------------------
Led Alias Portd.1
Mmc_csn Alias Portb.0
Dreq Alias Pind.4
Xcs Alias Portd.2
Xdcs Alias Portd.3
Xrst Alias Portd.5
Config Led = Output 'led
Config Vs_miso = Input 'serial input vs-1003
Config Vs_mosi = Output 'serial out vs-1003
Config Vs_clock = Output 'serial clock vs-1003
Config Xcs = Output 'VS Chip Select
Config Xrst = Output 'VS Reset
Config Dreq = Input 'VS Data Request
Config Xdcs = Output 'VS Stream Request
'-------------------------------------------------------------------------------
Set Vs_mosi
Set Vs_clock
Set Xcs
Set Xrst
Set Xdcs
Cls
Reset Led
Reset Vs_mosi
Reset Vs_clock
'-------------------------
'-------------------------------------------------------------------------------
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
'-------------------------------------------------------------------------------
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
Led = 0
'-------------------------------------------------------------------------------
Cursor Off
Cls
Lcd "loading..."
$include "Config_AVR-DOS.BAS"
$include "Config_MMC.bas"
B = Drivereset()
B = Driveinit()
If Gbdriveerror <> 0 Then
Lcd "mmc config error"
End
End If
'include avr-dos
B = Initfilesystem(1) 'init file system
If B <> 0 Then Print "Errore MMC" 'se errore
Cls
Lcd "VS1003 !!!"
Wait 2
Set Led
Lcd "Reseting VS1003."
Reset Xrst
Waitms 1
Set Xrst
Waitus 500
Bitwait Dreq , Set
Reset Led
Cls
Lcd "Initializing VS"
Wait 2
Set Led
Reset Xcs
Cls
Lcd "Reset Xcs"
Wait 10
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_mode_ad , 1
'Spiout Sc_mode_ad , 1 'Halate Kariyeh VS1003
A1 = 8
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Cls
Lcd "Set Xcs"
'Wait 10
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_bass_ad , 1
'Spiout Sc_bass_ad , 1 'Tanzime Bass va Treble
A1 = &H79
A2 = &HF7
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_clockf_ad , 1
'Spiout Sc_clockf_ad , 1 'Tanzimeh Clock va PLL bar royeh Adade 3
A1 = &H80
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_aiaddr_ad , 1
'Spiout Sc_aiaddr_ad , 1 'Barnameyeh Karbari Nadarim
A1 = 0
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Reset Xcs
Shiftout Vs_mosi , Vs_clock , Vs_w , 1
'Spiout Vs_w , 1
Shiftout Vs_mosi , Vs_clock , Sc_vol_ad , 1
'Spiout Sc_vol_ad , 1 'Tanzime Volume Rooyeh Haddeaksar
A1 = 0
A2 = 0
Shiftout Vs_mosi , Vs_clock , A1 , 1
'Spiout A1 , 1
Shiftout Vs_mosi , Vs_clock , A2 , 1
'Spiout A2 , 1
Set Xcs
Waitus 500
Bitwait Dreq , Set
Cls
Lcd "VS1003 initiated"
Reset Led
Wait 1
Cls
Lcd "playing file:"
Ff = Freefile()
Open "song.mp3" For Binary As #ff 'create file in MMC
Locate 2 , 1
Lcd Ff
Do
Get #ff , Buffer(1) , , 512
Set Led
Cls
For I = 1 To 512
Reset Xdcs
Shiftout Vs_mosi , Vs_clock , Buffer(i) , 1
Set Xdcs
'Spiout Buffer(i) , 1
Bitwait Dreq , Set
Next I
Cls
Bitwait Dreq , Set
Lcd "Set Xdcs"
Reset Led
Loop Until Eof(#ff) <> 0
Cls
Lcd "Ended."
Close #ff
End 'end program








دیدگاه