اطلاعیه

Collapse
No announcement yet.

پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

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

    #61
    پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

    سلام
    خوبید آقا تا اون جایی که من اطلاع دارم یکی از دوستان یه نوع فایل AVI رو نشون
    داده (سیاه سفید) من از همین فایل میخواهم شروع کنم و بهتون گزارش میدم
    الهم عجل لولیک الفرج

    فقط 313 نفر...

    دیدگاه


      #62
      پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

      پس مارو هم بیخبر نگذارید.

      دیدگاه


        #63
        پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

        سلام FAM
        هر چه زودتر شروع کنید

        دیدگاه


          #64
          پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

          سلام
          در مورد wav میتونید با avr در حد کیفیت بسیار پایین با pwm راهش بندازید ولی با vsxxx که همه چور کیفیت و همه جور پسوند

          در مورد فایل تصویری باید این نکته رو در نظر داشته باشید که فایل تصویری دارای یه جور کدک(codec) هستن و این کدک ها هم پیچیدست و هم اکثر غیر قابل دسترس
          مثلا یه بار امار گرفته بودم کدک mp4 با سلوشن c++ قیمتش 7000 دلاره (البته دروغ یا راستش به پای راوی)

          تازه از اینا بگذریم avr برای این کارا اصلا توانش رو نداره
          اونم توی بیسیک که هر کارش 10 برابر طولانی تر از زبانهای دیگست

          به وبلاگم سر بزنید

          دیدگاه


            #65
            پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

            من برای تابلوی چرخشی یه برنامه با vb نوشتم که هر قدر عکس بخواهی رو می تونه به میکرو ارسال و ار میکرو به mmc انتقال بده و بعد رو تابلو به شکل انیمیشن نشان می دهد اگه بتونم به طیف رنگ سیا و سفید رو به دست بیارم دیگه می تونم یه فیلم رو نشون بدم. تا حدی هم پیش رفتم فعلا.

            دیدگاه


              #66
              پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

              سلام دوستان با alitarooshehموافقم دوستان
              واسه این کار باید یه میکرو قوی مثل armرو دنبال کنین
              پیشنهاد میکنم یه سر به این فسمت ای ار ام بزنید /پشیمون نمیشین
              وچیزی هست که میخواین.حتی میتونین روشون ویندوز cs و لینوکس نصب کنید
              علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

              دیدگاه


                #67
                پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                به نظرتون من میتونم با استفاده از atmega8 یه فایل wav رو از رو mmc بخونم و بدم به dac 8 بیتی r2r ؟؟؟
                صدا بریده بریده میشه؟
                این فقط بحث امکان سنجیه. اگه به نظرش امکانش هست خواهش میکنم لینک های مفید برای بدید .البته من سعی دارم با c کار کنم نه با بیسیک

                دیدگاه


                  #68
                  پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                  سلام
                  من هم بیسیک کار میکنم هم سی
                  با AVR هم کار میکنم
                  اما دیدم نوشته بود یکی از دوستان که پخش فایل wav با Avr اصلا کیفیت نداره
                  من این مطلب را تکذیب میکنم.
                  من خودم با فت 16 فایل wav را با کیفیت عالی پخش میکنم . هیچ آی سی دیگه ای هم نیاز نیست
                  فقط یک میکرو - یک مموری کارت و یک تقویت کننده. به همین راحتی
                  با کیفیت واقعا عالی. کسانی که میگن نمیشه یا کیفیت نداره فکر کنم باید بیشتر مطالعه کنند. چون وقتی مبحث فرکانس و نمونه برداری و سمپل ریت و ... را بررسی کنید
                  می بینید یک میکرو با کریستال 16 مگاهرتز راحت جواب کار ما را میده.

                  دیدگاه


                    #69
                    پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                    دوست من ما میگیم کیفیت نداره و سر حرفمون هم هستیم
                    منظور ما از عدم کیفیت در مقایسه با pcهست نه گوشی که میشنوه
                    بله در حد شنیدن خیلی هم خوب جواب میده و من هم با پل مقاومتی و هم با pwm پخشش کردم و کیفیتش هم خوبه ولی نه نسبت به یه میکروکنترلر مثل arm or pc
                    علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                    دیدگاه


                      #70
                      پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                      پس به نظرتون من با atmega8 با کیفیت قابل قبول میتونم فایل رو پخش کنم
                      در ضمن لطفا یه نگا به سایت زیر بکنید
                      http://www.mikrocontroller.net/articles/Midi_Rekorder_mit_MMC/SD-Karte
                      برنامه رو با اسمبلی نوشته به نظرتون میتونم با اسمبلی برنامه خوندن از کارت sd رو اجرا کنم تا گرفتار فایل های اضافی که library ها ایجاد میکنن نشم؟

                      دیدگاه


                        #71
                        پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                        باید تست کنید :nice:
                        الهم عجل لولیک الفرج

                        فقط 313 نفر...

                        دیدگاه


                          #72
                          پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                          فرمت فایل wave رو که میبینم تا بایت 44 سرآیند فایله
                          از اینا تو برنامم باید استفاده کنم یا باید اینا رو بیخیال شم فقط داده رو بخونم؟
                          اونوقت باید به کاربر بگم فقط رو مموری میتونی فایل مثلا 12khz مونو بریزی؟

                          دیدگاه


                            #73
                            پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                            آقا امیر حسام من یه فایل از شما دارم و یه سری سوال در مورد اون اگه لطف کنین جواب بدین ممنون میشم

                            '******************************************** ***********************************
                            '* WAV Player Tel (M8L) By Behnam @ 27.Day.87 [2008] *
                            '* *
                            '* Author: FAM & Behnam Zakizadeh *
                            '* Location: IRAN , Qazvin City *
                            '* Web: http://electronic-projects.blogfa.com *
                            '* Mail: zakizadeh_behnam@yahoo.com *
                            '******************************************** ***********************************
                            $regfile = "M8def.dat"
                            $crystal = 12000000
                            Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 1
                            'Constants
                            'warter are FAM & Behnam
                            Const Msbl = 0
                            Const Msbh = 1
                            Const Dly = 2
                            Const Bits8 = 8
                            Const Bits16 = 16
                            Const Bits32 = 32
                            'Dim
                            Dim Dat As Byte
                            Dim Resp As Byte
                            Dim I As Word
                            Dim Addr As Long
                            Dim Adres As Long
                            Dim Tanzim As Byte
                            'Aliases
                            Cs Alias Portd.1
                            Mosi Alias Portd.2
                            Clk Alias Portd.3
                            Miso Alias Pind.0
                            'Declarations
                            Declare Sub Minit
                            Declare Sub Mread(byval Addr As Long )
                            'Configs
                            Config Portd.0 = Output
                            Config Portd.4 = Output
                            Config Portd.3 = Output
                            Config Pind.2 = Input
                            Waitms 300
                            Config Spi = Soft , Din = Pind.0 , Dout = Portd.2 , Ss = Portd.1 , Clock = Portd.3
                            Spiinit
                            '******** MAIN PROGRAM *************
                            Main:
                            'Initialize the MMCC
                            Minit
                            Adres = 1048576
                            Inja:
                            Mread Adres
                            Adres = Adres + 512
                            Goto Inja
                            Xloop:
                            Set Cs
                            Shiftout Mosi , Clk , Dat , Msbl
                            Endloop:
                            Goto Endloop
                            End 'end program
                            '***************************** END OF PROGRAM **********************************
                            '======= SUB ROUTINES AND FUNCTIONS =======
                            'warter are FAM & Behnam
                            '*** INITIALIZATION OF MMC ***
                            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
                            'warter are FAM & Behnam
                            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
                            'warter are FAM & Behnam
                            '**** READ routine assumes ADDR uses Status subroutine *****
                            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
                            For I = 1 To 512
                            Shiftin Miso , Clk , Resp , Msbl
                            Pwm1a = Resp
                            Waitus 30 'ÓÑÚ&Eci rc;
                            Next I
                            Shiftin Miso , Clk , Resp , Msbl
                            Shiftin Miso , Clk , Resp , Msbl
                            Set Cs
                            'warter are FAM & Behnam
                            End Sub

                            آدرس اولیه رو چرا 1048576 گذاشتین؟؟

                            While Resp <> &H01
                            Shiftin Miso , Clk , Resp , Msbl
                            Wend
                            رو اگه اشتباه نکنم برای تست اینکه mmc سالمه و درست initial شد گذاشتین؟ نه ؟ خوب اگه اینطور باشه initial نشه تا ابد اینجا میمونه؟ من فکر میکردم اونوقت باید زیربرنامه initial دوباره اجرا شه

                            و توی این قسمت :
                            Cmd1:
                            While Resp <> &H00
                            'warter are FAM & Behnam
                            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
                            یعنی متغیر resp رو بدون اینکه جایی save کنین دوباره روش مینویسی؟

                            شما اگه اشتباه نکنم پشت سرهم فقط با تاخیر 30us میخونید و میریزید برا pwm . کیفیت صدا در این حالت خوب بود؟
                            کلا این برنامتون خوب کار میکرد؟
                            با تشکر فراوان

                            دیدگاه


                              #74
                              پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                              منم چنتا سوال داشتم:



                              $regfile = "m8def.dat"
                              $crystal = 12000000
                              '____________________________________________ ___________________________________

                              Config Pinb.1 = Output
                              Sound Portb.1 , 50 , 100
                              Sound Portb.1 , 500 , 600
                              Sound Portb.1 , 300 , 400
                              Sound Portb.1 , 200 , 300
                              '____________________________________________ ___________________________________

                              Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7 , Rs = Pinb.0 , E = Pinb.3
                              Config Lcd = 16 * 2
                              '------------------------
                              Config Pinc.4 = Input
                              Pause Alias Pinc.4
                              '------------------------
                              Config Pinc.3 = Input
                              Kelid Alias Pinc.3
                              '------------------------
                              Config Pinc.2 = Input
                              Kelid2 Alias Pinc.2
                              '------------------------
                              Config Pinc.1 = Input
                              Stopp Alias Pinc.1
                              '------------------------
                              Config Pinc.5 = Output
                              Led Alias Portc.5
                              '------------------------
                              Config Pind.3 = Output
                              Set Portd.3
                              '------------------------
                              Config Debounce = 20
                              '------------------------
                              Portc = &B00011110
                              '____________________________________________ ___________________________________

                              Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
                              Pwm1a = 255
                              Pwm1b = 255
                              '-------------------------------------
                              'Constants
                              Const Msbl = 0
                              '-------------------------------------
                              'Dim
                              Dim Dat As Byte
                              Dim Resp As Byte
                              Dim Test As Long
                              Dim Hasel As Single
                              Dim Hasel1 As String * 6
                              Dim I As Word
                              Dim Addr As Long
                              Dim Adres As Long
                              Dim Ali As Byte
                              Dim A_shoro As Long
                              Dim Copy As Long
                              Dim Shomare As Long
                              Dim Hassan As String * 1
                              Dim Hassan1 As Byte
                              Dim Didi As Byte
                              Dim B As Byte
                              Dim C As Byte
                              Dim Riff As String * 6
                              Dim Zarf As Eram Long
                              Dim Bodd As Eram Word
                              Dim Bod As Word
                              Dim Zar As Long
                              Dim Trc As Long
                              Dim Zaman As Byte
                              Riff = "WAVE"
                              Cs Alias Portd.1
                              Mosi Alias Portd.2
                              Clk Alias Portd.3
                              Miso Alias Pind.0
                              '------------------------
                              'Declarations
                              Declare Sub Minit
                              Declare Sub Mread(byval Addr As Long )
                              '------------------------
                              'Configs
                              Config Pind.0 = Output
                              Config Pind.1 = Output
                              Config Pind.3 = Output
                              Config Pind.2 = Input
                              '------------------------
                              Config Spi = Soft , Din = Pind.0 , Dout = Portd.2 , Ss = Portd.1 , Clock = Portd.3
                              Enable Interrupts
                              Spiinit
                              Cursor Off
                              Cls
                              Lcd " * WAV PLAYER * "
                              Lowerline
                              Lcd "Searching wav" : Waitms 500 : Lcd "." : Waitms 500 : Lcd "." : Waitms 500 : Lcd ".":

                              '____________________________________________ ___________________________________

                              Main:
                              'Initialize the MMCC
                              Minit
                              Adres = 819200 '1048576 '262144
                              A_shoro = 819200 ' 262144
                              Ali = 0
                              Didi = 0
                              '------------------------
                              Inja:
                              Toggle Led
                              Debounce Pause , 0 , Stop_play , Sub
                              Debounce Kelid , 0 , Jolo , Sub
                              Debounce Kelid2 , 0 , Aghab , Sub
                              Debounce Stopp , 0 , Stop_p , Sub
                              Adres = Adres + 512
                              Mread Adres
                              If Ali = 0 Then
                              Adres = Adres + 5120000
                              Test = 512 * 7800

                              Adres = Adres - Test
                              Ali = 1
                              Test = Adres
                              End If
                              Goto Inja
                              '____________________________________________ ___________________________________

                              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
                              For I = 1 To 512
                              Shiftin Miso , Clk , Resp , Msbl
                              Hassan = Mid(riff , 1 , 1) : Hassan1 = Hassan
                              If Resp = Hassan1 Then
                              Shiftin Miso , Clk , Resp , Msbl
                              Hassan = Mid(riff , 2 , 1) : Hassan1 = Hassan : I = I + 1
                              If Resp = Hassan1 Then
                              Shiftin Miso , Clk , Resp , Msbl
                              Hassan = Mid(riff , 3 , 1) : Hassan1 = Hassan : I = I + 1
                              If Resp = Hassan1 Then
                              Shiftin Miso , Clk , Resp , Msbl
                              Hassan = Mid(riff , 4 , 1) : Hassan1 = Hassan : I = I + 1
                              If Resp = Hassan1 Then Gosub Okk
                              End If
                              End If
                              End If
                              '------------------------
                              If Ali = 2 Then 'be seda dar avardane bolandgo
                              Pwm1a = Resp '
                              Pwm1b = Resp '
                              If Bod = 22050 Then Waitus 22 'tanzim mizan sorat bar asase bod
                              End If
                              Next I
                              Shiftin Miso , Clk , Resp , Msbl
                              Shiftin Miso , Clk , Resp , Msbl
                              Set Cs
                              End Sub
                              '____________________________________________ ___________________________________

                              Okk:
                              Cls
                              Lcd "Track=" ; C
                              Incr C
                              Home '34=data
                              For B = 1 To 30 '4=WAVE
                              I = I + 1
                              Shiftin Miso , Clk , Resp , Msbl
                              If B = 13 Then Writeeeprom Resp , 4
                              If B = 14 Then Writeeeprom Resp , 5
                              Next B
                              Shiftin Miso , Clk , Resp , Msbl : Writeeeprom Resp , 0
                              Shiftin Miso , Clk , Resp , Msbl : Writeeeprom Resp , 1
                              Shiftin Miso , Clk , Resp , Msbl : Writeeeprom Resp , 2
                              Shiftin Miso , Clk , Resp , Msbl : Writeeeprom Resp , 3
                              I = I + 4
                              Zar = Zarf
                              Hasel = Zar / 1000000 : Hasel1 = Fusing(hasel , "#.##&quot : Locate 2 , 9 : Lcd Hasel1 ; " MB"
                              Trc = Adres 'jahat zakhire adres shoro track
                              Ali = 2 'jahat namayesh tamami karekterha
                              Bod = Bodd : Locate 2 , 1 : Lcd "S:" ; Bod
                              Return
                              '____________________________________________ ___________________________________

                              Stop_play:
                              Pwm1a = 255
                              Pwm1b = 255
                              Copy = Adres
                              Waitms 300
                              Reset Led
                              Do
                              Debounce Pause , 0 , Play
                              Loop
                              '____________________________________________ ___________________________________

                              Play:
                              Adres = Copy
                              Return
                              '____________________________________________ ___________________________________

                              Jolo:
                              Zar = Trc + Zar
                              Zar = Trc - 2048
                              Mmmm:
                              Adres = Adres + 2048
                              If Zar > Adres Then Goto Mmmm
                              Ali = 1
                              Return
                              '____________________________________________ ___________________________________

                              Aghab:
                              Adres = Adres - 153600
                              For Shomare = 1 To 1000
                              If Kelid2 = 1 Then Return
                              Next
                              Adres = Adres - 972800
                              If Adres < A_shoro Then Adres = A_shoro
                              Return
                              '____________________________________________ ___________________________________

                              Stop_p:
                              Mmmmm:
                              Adres = Adres - 2048
                              If Trc < Adres Then Goto Mmmmm
                              Ali = 1
                              Decr C
                              Return
                              '____________________________________________ ___________________________________


                              محاسبه این مقادیر آدرس چطوریه؟

                              دیدگاه


                                #75
                                پاسخ : پخش فایل Wav نمایش فایل Bmp از طریق Fat16 با Bascom

                                اقای ardavanzzz این محاسبات با ازمون و خطا بوده(به نظر من)


                                نوشته اصلی توسط ghasedak2716
                                پس به نظرتون من با atmega8 با کیفیت قابل قبول میتونم فایل رو پخش کنم
                                در ضمن لطفا یه نگا به سایت زیر بکنید
                                http://www.mikrocontroller.net/articles/Midi_Rekorder_mit_MMC/SD-Karte
                                برنامه رو با اسمبلی نوشته به نظرتون میتونم با اسمبلی برنامه خوندن از کارت sd رو اجرا کنم تا گرفتار فایل های اضافی که library ها ایجاد میکنن نشم؟
                                قابل قبول در حد یک پروژه دانشجویی
                                من اسمبلی کار نکردم

                                نوشته اصلی توسط ghasedak2716
                                فرمت فایل wave رو که میبینم تا بایت 44 سرآیند فایله
                                از اینا تو برنامم باید استفاده کنم یا باید اینا رو بیخیال شم فقط داده رو بخونم؟
                                اونوقت باید به کاربر بگم فقط رو مموری میتونی فایل مثلا 12khz مونو بریزی؟
                                اره میتونی بستگی به اهنگت داره من بهترین جوابی که گرفتم 44 کیلوهرتز بوده

                                علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

                                دیدگاه

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