اطلاعیه

Collapse
No announcement yet.

کمک در ساخت wav player

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

    کمک در ساخت wav player

    سلام دوستان
    من دو سه روز هست که دارم این رو درست میکنم اما کار نمی کنه :angry:
    از میکروکنترولر atmega 32 استفاده کردم رم sd 2g وصل کردم اما هر کاری که میکنم کار نمی کنه روی ال سی دی همون Search Card... نوشته از دوستام می خوام کمک کنند
    با تشکر

    #2
    پاسخ : کمک در ساخت wav player

    سلام اگه ممکنه برنامه و شماتیکی که بستین رو بزارین تا دوستان راهنماییتون کنن با تشکّر
    AV Maziton 100
    Render By Artlantis Studio
    [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]

    دیدگاه


      #3
      پاسخ : کمک در ساخت wav player

      سلام
      یادم رفت بزارم
      این برنامه

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

      'LCD
      Config Lcdpin = Pin , Db4 = Pina.3 , Db5 = Pina.2 , Db6 = Pina.1 , Db7 = _
      Pina.0 , Rs = Pina.5 , E = Pina.4
      Config Lcd = 16 * 2
      Cursor Off : Cls
      Deflcdchar 0 , 32 , 32 , 31 , 31 , 31 , 31 , 31 , 32 'First #
      Deflcdchar 1 , 32 , 32 , 18 , 26 , 30 , 26 , 18 , 32 'Play/Pause >|
      Deflcdchar 2 , 32 , 32 , 2 , 6 , 14 , 6 , 2 , 32 'Back <<
      Deflcdchar 3 , 32 , 32 , 8 , 12 , 14 , 12 , 8 , 32 'Forward >>
      'PWM
      Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1

      'Constants
      Const Msbl = 0

      'Variables
      Dim Indat(512) As Byte 'Memory buffer
      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

      'Aliases
      Cs Alias Portc.5
      Clk Alias Portc.3
      Miso Alias Pinc.2 'Mcu inp <- MMC
      Mosi Alias Portc.4 'Mcu out -> MMC

      'Declarations
      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

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

      'Set Pullup
      Portd.6 = 1
      Portd.7 = 1
      Portb.2 = 1
      Portb.3 = 1

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

      '____________________________________________ ___________________________________
      'Main Prog Start Here:
      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

      'Adrrr = 281600 '256MB Micro SD FAT16 Start Addr
      'Adrrr = 265728 '1GB Micro SD FAT16 Start Addr
      'Adrrr = 396288 '1GB DVRS MMC FAT16 Start Addr
      'Adrrr = 2113024 '1GB DVRS MMC FAT32 Start Addr

      'FAT Addr
      'Adrrr = 19968 '256 Micro SD FAT16/32 Addr
      'Adrrr = 0 '1GB Micro SD FAT16/32 Addr
      'Adrrr = 130560 '1GB DVRS MMC FAT16/32 Addr

      Xloop:
      Set Cs
      Shiftout Mosi , Clk , Dat , Msbl
      End
      '____________________________________________ ___________________________________
      'Init SD/MMC By Diol [Compsys1.com]
      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
      '____________________________________________ ___________________________________
      'Read SD/MMC Sector By Diol [Compsys1.com]
      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
      '____________________________________________ ___________________________________
      'Search FAT Table Of SD/MMC By Behnam [AVR64.com]
      Sub Msearch
      Address = 0
      Do
      Call Mread(address)
      For I = 1 To 512
      'M is First Char Of "MSDOS5.0" In FAT Sector
      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: "
      '------------------------ Byte 55 to 59 Contain "FAT16" String, IF FATis16
      For I = 55 To 59
      Fat = Fat + Chr(indat(i))
      Next I
      If Fat = "FAT16" Then
      Lcd "FAT16"
      End If
      '------------------------ Byte 83 to 87 Contain "FAT32" String, IF FATis32
      For I = 83 To 87
      Fat = Fat + Chr(indat(i))
      Next I
      If Fat = "FAT32" Then
      Lcd "FAT32"
      End If
      Wait 2
      End Sub
      '____________________________________________ ___________________________________
      'Find First File Address Of SD/MMC By Behnam [AVR64.com]
      Sub Mfirstfile
      Cls : Lcd " Search File..."
      Address = 0
      Do
      Call Mread(address)
      For I = 1 To 512
      '1 is Last Char Of "F1" In First File Sector
      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 'Copy FirstFile Addr
      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
      'Read Keys
      If Play_key = 0 Then 'Pause
      Waitms 300
      Do
      If Play_key = 0 Then Exit Do 'Play
      Loop
      Waitms 300
      End If
      If First_key = 0 Then Address = Firstaddr 'First
      If Prev_key = 0 Then 'Prev
      If Address > Firstaddr Then Address = Address - 1048576
      Waitms 50
      End If
      If Next_key = 0 Then 'Next
      Address = Address + 1048576
      Waitms 50
      End If
      Call Mread(address)
      Address = Address + 512
      Loop
      End Sub
      البته برنامه رو خودم ننوشتم

      شماتیک
      من همه چیزرو عین این ساختم اما ال سی دی رو دستکاری کردم
      http://up5.iranblog.com/images/jhohj1hvrta7asjx7.rar

      دیدگاه


        #4
        پاسخ : کمک در ساخت wav player

        منم همینو درست کردم ولی روی مگا8
        روی مگا32 امتحان کردم نشد
        منم فقط پایه های lcd رو عوض کردم ولی احتمالا چیزای دیگش هم باید عوض بشه

        پیشنهاد میکنم اگه مگا8 داری از همون استفاده کن
        من که راحت جواب گرفتم

        Jtag رو غیر فعّال کن چون رو پورت C کار میکنی من امتحان نکردم امتحان کن ببین چی میشه
        AV Maziton 100
        Render By Artlantis Studio
        [img width=346 height=100]http://maziyar123.persiangig.com/View.jpg[/img]

        دیدگاه


          #5
          پاسخ : کمک در ساخت wav player

          اقا مرسی دست درد نکنه مشکلم حل شد :icon_razz: :wow: :applause: :wow: :applause: :

          دیدگاه

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