اطلاعیه

Collapse
No announcement yet.

مشکل با wave player ساخته شده ** لطفا راهنمایی کنید

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با wave player ساخته شده ** لطفا راهنمایی کنید

    سلام دوستان من یه ویو پلیر دانلود کرده و ساختم اما وقتی مموری رو داخلش قرار میدم رو search card میمونه ضمننا مطمینم مموری رو درست وصل کردم
    مشکل از کجا میتونه باشه اینم برنامه

    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 64
    $swstack = 64
    $framesize = 64


    Config Lcdpin = Pin , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = _
    Pind.5 , E = Pind.1 , Rs = Pind.0
    Config Lcd = 16 * 2
    Cursor Off : Cls
    Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 31 , 32
    Deflcdchar 1 , 32 , 32 , 18 , 26 , 30 , 26 , 18 , 32
    Deflcdchar 2 , 32 , 32 , 2 , 6 , 14 , 6 , 2 , 32
    Deflcdchar 3 , 32 , 32 , 8 , 12 , 14 , 12 , 8 , 32

    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1


    Const Msbl = 0


    Dim Indat(512) As Byte
    Dim Dat As Byte
    Dim Resp As Byte
    Dim I As Word
    Dim Addr As Long
    Dim Address As Long
    Dim Fat As String * 5
    Dim Firstaddr As Long
    Dim Play As Bit

    Cs Alias Portc.5
    Clk Alias Portc.3
    Miso Alias Pinc.2
    Mosi Alias Portc.4


    Declare Sub Minit
    Declare Sub Mread(byval Addr As Long)
    Declare Sub Msearch
    Declare Sub Mfirstfile
    Declare Sub Menu

    Config Pinc.5 = Output
    Config Pinc.3 = Output
    Config Pinc.4 = Output
    Config Pinc.2 = Input
    Waitms 300
    Config Spi = Soft , Din = Pinc.2 , Dout = Portc.4 , Ss = Portc.5 , Clock = Portc.3
    Spiinit


    Config Pind.6 = Input
    Config Pind.7 = Input
    Config Pinb.2 = Input
    Config Pinb.3 = Input


    Portd.6 = 1
    Portd.7 = 1
    Portb.2 = 1
    Portb.3 = 1


    First_key Alias Pind.6
    Play_key Alias Pind.7
    Prev_key Alias Pinb.2
    Next_key Alias Pinb.3


    For I = 1 To 100
    Pwm1a = 0
    Waitms 1
    Pwm1a = 64
    Waitms 1
    Next I

    Cls : Lcd " Search Card..."
    Call Minit
    Call Msearch
    Call Mfirstfile
    Call Menu



    Xloop:
    Set Cs
    Shiftout Mosi , Clk , Dat , Msbl
    End

    Sub Minit
    Set Cs
    Dat = &HFF
    For I = 1 To 10
    Shiftout Mosi , Clk , Dat , Msbl
    Next I
    Resp = 255
    Reset Cs
    Cmd0:
    Dat = &H40
    Shiftout Mosi , Clk , Dat , Msbl
    Addr = &H00000000
    Shiftout Mosi , Clk , Addr , Msbl
    Dat = &H95
    Shiftout Mosi , Clk , Dat , Msbl
    While Resp <> &H01
    Shiftin Miso , Clk , Resp , Msbl
    Wend
    Set Cs
    Waitms 50
    Reset Cs
    Dat = &HFF
    Cmd1:
    While Resp <> &H00
    Set Cs
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftin Miso , Clk , Resp , Msbl
    Reset Cs
    Dat = &H41
    Shiftout Mosi , Clk , Dat , Msbl
    Addr = 0
    Shiftout Mosi , Clk , Addr , Msbl
    Dat = &HFF
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftin Miso , Clk , Resp , Msbl
    Wend
    Dat = &HFF
    Set Cs
    End Sub

    Sub Mread(byval Addr As Long)
    Set Cs
    Dat = &HFF
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftin Miso , Clk , Resp , Msbl
    Reset Cs
    Dat = &H51
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftout Mosi , Clk , Addr , Msbl
    Dat = &HFF
    Shiftout Mosi , Clk , Dat , Msbl
    Shiftin Miso , Clk , Resp , Msbl
    While Resp <> 0
    Shiftin Miso , Clk , Resp , Msbl
    Wend
    While Resp <> &HFE
    Shiftin Miso , Clk , Resp , Msbl
    Wend
    Dim Stn As Byte , A As String * 20 , C As Byte , J1 As Byte
    For I = 1 To 512
    Shiftin Miso , Clk , Resp , Msbl
    Indat(i) = Resp
    If Play = 1 Then
    Pwm1a = Resp
    Waitus 30
    End If
    Next I
    Shiftin Miso , Clk , Resp , Msbl
    Shiftin Miso , Clk , Resp , Msbl
    Set Cs
    End Sub

    Sub Msearch
    Address = 0
    Do
    Call Mread(address)
    For I = 1 To 512

    If Indat(i) = "M" Then Exit Do
    Next I
    Address = Address + 512
    Home L : Lcd "Addr:" ; Address
    Loop
    Cls : Lcd "MMC OK"
    Lowerline
    Lcd "MMC FAT: "

    For I = 55 To 59
    Fat = Fat + Chr(indat(i))
    Next I
    If Fat = "FAT16" Then
    Lcd "FAT16"
    End If

    For I = 83 To 87
    Fat = Fat + Chr(indat(i))
    Next I
    If Fat = "FAT32" Then
    Lcd "FAT32"
    End If
    Wait 2
    End Sub

    Sub Mfirstfile
    Cls : Lcd " Search File..."
    Address = 0
    Do
    Call Mread(address)
    For I = 1 To 512

    If Indat(i) = "1" And Indat(i -1) = "F" Then Exit Do
    Next I
    Address = Address + 512
    Home L : Lcd "Addr:" ; Address
    Loop
    Cls : Lcd "First File:"
    Lowerline
    Lcd Address
    Firstaddr = Address
    Wait 2
    End Sub
    '____________________________________________ ___________________________________
    Sub Menu
    Address = Firstaddr
    Play = 1
    Cls : Lcd " Wave Player"
    Lowerline
    Lcd Chr(0) ; Spc(4) ; Chr(1) ; Spc(4) ; Chr(2) ; Spc(4) ; Chr(3)
    Do

    If Play_key = 0 Then
    Waitms 300
    Do
    If Play_key = 0 Then Exit Do
    Loop
    Waitms 300
    End If
    If First_key = 0 Then Address = Firstaddr
    If Prev_key = 0 Then
    If Address > Firstaddr Then Address = Address - 1048576
    Waitms 50
    End If
    If Next_key = 0 Then
    Address = Address + 1048576
    Waitms 50
    End If
    Call Mread(address)
    Address = Address + 512
    Loop
    End Sub

    #2
    پاسخ : مشکل با wave player ساخته شده ** لطفا راهنمایی کنید

    سلام
    منم این برنامه رو تست کردم بصورت عملی لی هر چه قدر سعی کردم نتونستم ازش جوابی بگیرم
    ولی یه برنامه دیگه ای دارم که ازش جواب گرفتم و فایل های ویو رو با کیفیت 32 و 48 پخش می کنه
    اگه مایل به تهیه برنامه هستین به من ایمیل بزنید
    *****************

    دیدگاه

    لطفا صبر کنید...
    X