اطلاعیه

Collapse
No announcement yet.

wave player & fat

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

    #61
    پاسخ : wave player & fat

    نوشته اصلی توسط hojjat681
    سلام خدمت اساتید محترم :wow:
    من میخواستم هر دفعه یه فایل wav رو با یه اسم خاص پخش کنم.مثلا اول که میخواد پخش بشه بره فایل با اسم 1 رو پخش کنه و دفعه بعدی بره یه فایل با یه اسم دیگه مثلا فایل 5 رو پخش کنه.کدوم قسمت برنامه رو دقیقا باید تغییر بدم؟ :nerd:
    با تشکر :applause:
    سلام
    فقط کافی دستور ("play("1.wavرو هرجا که تابع play() فراخونی شده قرار بدی

    دیدگاه


      #62
      پاسخ : wave player & fat

      با سلام :rolleyes:
      ضمن آرزوی موفقیت برای جناب استاد نعمتی عزیز و دیگر اساتید
      دو تا سوال داشتم.
      1- اینکار رو انجام دادم.آیا اول برنامه ها و کتابخونه ها باید این اسم ها را تعریف کنم؟چون این ارور زیر رو بهم داد:
      Error: function argument #1 of type 'float' is incompatible with required parameter of type 'const unsigned char
      سوال دوم اینکه من بعد تابع (play(Fno.fname; این دستور رو وارد کردم: :read:
      (play(1.wav;
      دستور رو درست وارد کردم ؟پس چرا ارور بالا رو بهم داد؟ : :cry2:
      با تشکر :job:

      دیدگاه


        #63
        پاسخ : wave player & fat

        نوشته اصلی توسط hojjat681
        با سلام :rolleyes:
        ضمن آرزوی موفقیت برای جناب استاد نعمتی عزیز و دیگر اساتید
        دو تا سوال داشتم.
        1- اینکار رو انجام دادم.آیا اول برنامه ها و کتابخونه ها باید این اسم ها را تعریف کنم؟چون این ارور زیر رو بهم داد:
        Error: function argument #1 of type 'float' is incompatible with required parameter of type 'const unsigned char
        سوال دوم اینکه من بعد تابع (play(Fno.fname; این دستور رو وارد کردم: :read:
        (play(1.wav;
        دستور رو درست وارد کردم ؟پس چرا ارور بالا رو بهم داد؟ : :cry2:
        با تشکر :job:
        با سلام

        باید اسم فایل رو توی دابل کتیشن یا " قرار بدید
        مثل مثالی که اقای نعمتی فرمودند یعنی اینطوری ("play("1.wav

        به همین سادگی :nice:
        تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
        به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

        دیدگاه


          #64
          پاسخ : wave player & fat

          با سلام و ضمن تشکر از اساتیدی که پاسخ سوالات رو میدن :rolleyes:
          با عرض پوزش :mrgreen:
          یه سوال حین کامپایل برنامه برام به وجود اومد...
          اگر شما یک تغییر در متن برنامه wav player.prj ایجاد کنید و بعدش اول کتابخانه pff.c یا pff.h رو کامپایل کنید به یه سری هشدار برخورد میکنید مثل هشدار زیر: :eek:
          overflow is possible in 16 bit shift left, casting shifted operand to 'long' may be required
          و این هشدار : oo:
          8 WAV Player.c: local variable 'dir' is used before it's value is set
          اما اگر بعد از اعمال همون تغییر,ابتدا متن wav player رو کامپایل کنید و بعدش کتابخونه های pff.c یا pff.h رو کامپایل کنید این هشداره رو بهتون نمیده! :read:
          علت چی میتونه باشه؟چرا ترتیب کامپایل اثر داره؟ :question:
          با تشکر

          دیدگاه


            #65
            پاسخ : wave player & fat

            در هنگام شروع پخش یک قطعه فایل با روشن شدن تایمر بلندگو یک صدای تیک اینجام میدهد
            و یا در هنگام تعویض اهنگ
            کمی نرم افزاری برروی این قضیه کارکردم به نتیجه نرسیدم
            کسی اطلاعات در مورد حذف این مورد داره؟
            هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
            بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
            میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

            تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

            دیدگاه


              #66
              پاسخ : wave player & fat

              سلام خدمت دوستان و اساتید گرامی من هم در حال ساخت یک Wave player هستم ولی یک سری سوالات پایه دارم از شما دوستان خواهش می کنم راهنمایی بفرمایید
              ما یک فایل فرمت wave داریم برای اینکه با pwm بسازیمش باید با توجه به نمونه برداری که از سیگنالمان داریم یعنی مقدار ولتاژ مورد نیاز را در مقدار مقایسه ای تایمر بریزیم درسته؟
              حالا سوال من اینه که فاصله بین این دو نمونه برداری را چطور باید تنظیم کنیم با استفاده از فرکانسی که فایل اصلی کانورت شده باید این کار را بکنیم ؟؟؟مثلا اگه با فرکانس 32K کانورت کردیم باید با توجه به این تایمر را پیکر بندی کنیم؟؟؟ آیا یک تایمر کافیه( من داخل برنامه هایی که در این قسمت هستش دیدم که از دو تایم استفاده شده جریان چیه؟؟؟)
              سوال بعدی من این هست که باید بایت به بایت بخونیم وقتی توی حالت 8bit هستش یا نه؟؟؟
              I'm Very Question and I have more Question,Please Answer All of my Questions


              [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]

              دیدگاه


                #67
                پاسخ : wave player & fat

                جناب اسدی عزیز سلام
                من سورس برنامه شما رو دیدم :applause:
                خـــــــــــــــســــته نباشی واقعا عالی بود.!
                لطف میکنید در مورد فایل Pff.h توضیح بدید.؟
                این فایل خیلی شبی به FF.h است.!
                همچنین pff.c و MMC.c ... واقعا سنگین هستش.!
                این سورس ها همگی کار جناب عالی هستند.؟ :question:
                قومي متفکرند اندر ره دين
                قومي بگمان فتاده در راه يقين
                ميترسم از آن که بانگ آيد روزي
                که اي بي خبران ، راه نه آن است و نه اين...!

                دیدگاه


                  #68
                  پاسخ : wave player & fat

                  نوشته اصلی توسط هادی دادگستر
                  جناب اسدی عزیز سلام
                  من سورس برنامه شما رو دیدم :applause:
                  خـــــــــــــــســــته نباشی واقعا عالی بود.!
                  لطف میکنید در مورد فایل Pff.h توضیح بدید.؟
                  این فایل خیلی شبی به FF.h است.!
                  همچنین pff.c و MMC.c ... واقعا سنگین هستش.!
                  این سورس ها همگی کار جناب عالی هستند.؟ :question:
                  با سلام

                  خیر بنده ننوشتم
                  این توابع خلاصه و ساده شده توابع فت دوست ژاپنی مون اقای چان هستند
                  در خصوص این توابع به صورت مفصل در تاپیک
                  http://www.eca.ir/forum2/index.php?topic=55074.0
                  بحث شده است

                  به همین سادگی :nice:
                  تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
                  به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

                  دیدگاه


                    #69
                    پاسخ : wave player & fat

                    نوشته اصلی توسط very question
                    سلام خدمت دوستان و اساتید گرامی من هم در حال ساخت یک Wave player هستم ولی یک سری سوالات پایه دارم از شما دوستان خواهش می کنم راهنمایی بفرمایید
                    ما یک فایل فرمت wave داریم برای اینکه با pwm بسازیمش باید با توجه به نمونه برداری که از سیگنالمان داریم یعنی مقدار ولتاژ مورد نیاز را در مقدار مقایسه ای تایمر بریزیم درسته؟
                    حالا سوال من اینه که فاصله بین این دو نمونه برداری را چطور باید تنظیم کنیم با استفاده از فرکانسی که فایل اصلی کانورت شده باید این کار را بکنیم ؟؟؟مثلا اگه با فرکانس 32K کانورت کردیم باید با توجه به این تایمر را پیکر بندی کنیم؟؟؟ آیا یک تایمر کافیه( من داخل برنامه هایی که در این قسمت هستش دیدم که از دو تایم استفاده شده جریان چیه؟؟؟)
                    سوال بعدی من این هست که باید بایت به بایت بخونیم وقتی توی حالت 8bit هستش یا نه؟؟؟
                    دوست من در مورد همه سوالای شما قبلا در ابن تاپیک صحبت شده لطفا پست های قبلی رو مطالعه کنید

                    به همین سادگی :nice:
                    تجربه معلم خشنی هست اول امتحان میگیره بعد درس میده !!!
                    به دلیل برخی مشکلات بوجود اماده دیگه امکان ادامه فعالت در این انجمن مقدور نیست.

                    دیدگاه


                      #70
                      پاسخ : wave player & fat

                      بله من همه را مطالعه کردم بعد سوال پرسیدم استاد ، بهمین سادگی های شما هم مطالعه کردم
                      ولی از لحاظ مفهوم الان نمی دون واقعا صدا چیه؟؟؟؟
                      ما یه فرکانس داریم ، یک بیت ریت و همچنین اینکه 8 بیتی 16 و غیره
                      ؟؟؟؟؟؟
                      I'm Very Question and I have more Question,Please Answer All of my Questions


                      [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]

                      دیدگاه


                        #71
                        پاسخ : wave player & fat

                        نوشته اصلی توسط very question
                        سلام خدمت دوستان و اساتید گرامی من هم در حال ساخت یک Wave player هستم ولی یک سری سوالات پایه دارم از شما دوستان خواهش می کنم راهنمایی بفرمایید
                        ما یک فایل فرمت wave داریم برای اینکه با pwm بسازیمش باید با توجه به نمونه برداری که از سیگنالمان داریم یعنی مقدار ولتاژ مورد نیاز را در مقدار مقایسه ای تایمر بریزیم درسته؟
                        حالا سوال من اینه که فاصله بین این دو نمونه برداری را چطور باید تنظیم کنیم با استفاده از فرکانسی که فایل اصلی کانورت شده باید این کار را بکنیم ؟؟؟مثلا اگه با فرکانس 32K کانورت کردیم باید با توجه به این تایمر را پیکر بندی کنیم؟؟؟ آیا یک تایمر کافیه( من داخل برنامه هایی که در این قسمت هستش دیدم که از دو تایم استفاده شده جریان چیه؟؟؟)
                        سوال بعدی من این هست که باید بایت به بایت بخونیم وقتی توی حالت 8bit هستش یا نه؟؟؟
                        سلام
                        من هم مشکل شما رو داشتم.!
                        همه پست های این صفحه رو هم خوندم ولی چیز خاصی بدست نیاوردم ، ماشا الله همه فقط به فکر ساختن مدار هستند.! بگذریم
                        من برنامه استاد اسدی رو نگاه کردم خیلی سنگینه و به درد من بیسواد نمیخوره.!
                        تصمیم گرفتم خودم برنامش و بنویسم.!
                        -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                        تو برنامه از 2 تایمر استفاده شده:
                        تایمر (صفر ) برای سرعت نمونه برداری کد ها هست ، اگر فایل تبدیل شده 44Khz باشه ، تایمر هم بر اساس همون 44Khz پیکربندی میشه و
                        اگر هم 32Khz باشه ، به نسبت همون پیکر بندی میشه.!
                        در وقفه مقایسه تایمر صفر هم عمل بار گزاری رجیستر های مقایسه تایمر 1 ، که وضعیت خروجی ها را مشخص میکنه نوشته شده
                        تنظیمات تایمر صفر هم بصورت : CTC - enable Compare match Interrupt - Prescaler 8
                        OCR0=1600000/8/32000 - 1 برای 32Khz
                        OCR0=1600000/8/44000 - 1 برای 44Khz
                        -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                        تایمر (یک) برا ی بار گزاری کد های خوانده شده از فایل Wav هست .
                        به نسبت زمان تایمر اول کد ها بارگذاری میشوند.!
                        پیکربندی هم بصورت :
                        Pwm fats 8 bit - no prescalling - enable out pin A & B - invert A & B
                        -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                        من تا همین جا همین اطلاعات رو متوجه شدم نمیدونم چقدر درست گفتم.!
                        از فردا هم روی اینترفیس Wav کار میکنم
                        قومي متفکرند اندر ره دين
                        قومي بگمان فتاده در راه يقين
                        ميترسم از آن که بانگ آيد روزي
                        که اي بي خبران ، راه نه آن است و نه اين...!

                        دیدگاه


                          #72
                          پاسخ : wave player & fat

                          نوشته اصلی توسط هادی دادگستر
                          سلام
                          من هم مشکل شما رو داشتم.!
                          همه پست های این صفحه رو هم خوندم ولی چیز خاصی بدست نیاوردم ، ماشا الله همه فقط به فکر ساختن مدار هستند.! بگذریم
                          من برنامه استاد اسدی رو نگاه کردم خیلی سنگینه و به درد من بیسواد نمیخوره.!
                          تصمیم گرفتم خودم برنامش و بنویسم.!
                          -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                          تو برنامه از 2 تایمر استفاده شده:
                          تایمر (صفر ) برای سرعت نمونه برداری کد ها هست ، اگر فایل تبدیل شده 44Khz باشه ، تایمر هم بر اساس همون 44Khz پیکربندی میشه و
                          اگر هم 32Khz باشه ، به نسبت همون پیکر بندی میشه.!
                          در وقفه مقایسه تایمر صفر هم عمل بار گزاری رجیستر های مقایسه تایمر 1 ، که وضعیت خروجی ها را مشخص میکنه نوشته شده
                          تنظیمات تایمر صفر هم بصورت : CTC - enable Compare match Interrupt - Prescaler 8
                          OCR0=1600000/8/32000 - 1 برای 32Khz
                          OCR0=1600000/8/44000 - 1 برای 44Khz
                          -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                          تایمر (یک) برا ی بار گزاری کد های خوانده شده از فایل Wav هست .
                          به نسبت زمان تایمر اول کد ها بارگذاری میشوند.!
                          پیکربندی هم بصورت :
                          Pwm fats 8 bit - no prescalling - enable out pin A & B - invert A & B
                          -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
                          من تا همین جا همین اطلاعات رو متوجه شدم نمیدونم چقدر درست گفتم.!
                          از فردا هم روی اینترفیس Wav کار میکنم
                          سلام ممنون اقا هادی من هم تا اینجا ها پیش رفتم اول اومدم با تایمر صفر زمان بار گذاری ساختم و بعدش باتایمر1 در مد pwm که بتونم مقادیر را بصورت pwm در خروجی داشته باشم این کار من درسته؟؟؟
                          حالا خوردم به MMC نمی دونم چطوری باید جلو برم دیدم که تابع های اماده برای MMC هستش ، برم از اون ها استفاده کنم ، با استفاده از اونها من واقعا می فهمم داره در level های پایین تر چه اتفاقی می افته ؟؟؟
                          راستی باید فرکانس دقیق بسازیم ؟؟؟، برای من دقیق 22.050 نشد :sad:
                          هدف من فقط پخش یه اهنگ نیست من می خوام اون بایت هایی(سکتورها) که روی pwm قرار می گیرن هم داشته باشم( ذخیره کنم)یعنی مقادیری که در فایل hex شده فایل waveوجود دارد،
                          من اومدم با نرم افزارwinhex این کار را کردم ولی اجازه نمی ده که من مقادیر را کپی کنم ، می خوام بعد هدر فایل یک تیکه از اهنگ بردارم بدون MMC تست کنم ، می شه؟؟؟چند کیلو از اهنگ بردارم تست کنم می شه؟؟؟
                          می خواهم قبل اضافه کردن MMC تایمرهایی که ساختم را چک کنم
                          استاد POLESTAR من مشتاقانه منتظر جواب های شما هستم
                          I'm Very Question and I have more Question,Please Answer All of my Questions


                          [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]

                          دیدگاه


                            #73
                            پاسخ : wave player & fat

                            نوشته اصلی توسط very question
                            سلام ممنون اقا هادی من هم تا اینجا ها پیش رفتم اول اومدم با تایمر صفر زمان بار گذاری ساختم و بعدش باتایمر1 در مد pwm که بتونم مقادیر را بصورت pwm در خروجی داشته باشم این کار من درسته؟؟؟
                            حالا خوردم به MMC نمی دونم چطوری باید جلو برم دیدم که تابع های اماده برای MMC هستش ، برم از اون ها استفاده کنم ، با استفاده از اونها من واقعا می فهمم داره در level های پایین تر چه اتفاقی می افته ؟؟؟
                            راستی باید فرکانس دقیق بسازیم ؟؟؟، برای من دقیق 22.050 نشد :sad:
                            هدف من فقط پخش یه اهنگ نیست من می خوام اون بایت هایی(سکتورها) که روی pwm قرار می گیرن هم داشته باشم( ذخیره کنم)یعنی مقادیری که در فایل hex شده فایل waveوجود دارد،
                            من اومدم با نرم افزارwinhex این کار را کردم ولی اجازه نمی ده که من مقادیر را کپی کنم ، می خوام بعد هدر فایل یک تیکه از اهنگ بردارم بدون MMC تست کنم ، می شه؟؟؟چند کیلو از اهنگ بردارم تست کنم می شه؟؟؟
                            می خواهم قبل اضافه کردن MMC تایمرهایی که ساختم را چک کنم
                            استاد POLESTAR من مشتاقانه منتظر جواب های شما هستم
                            سلام
                            قسمت اول درسته بله
                            ---------------------------------------------------------------------------------------------------------------------------------------------
                            اما در مورد MMC کار زیاد سختی نیست.
                            من قبلا از آموزش های یزد الکترونیک استفاده کردم برنامه نویسی بسکام خیلی عالی کار میکرد.!
                            برای زبان C هم از از لینک http://www.eca.ir/forum2/index.php?topic=59702.30 استفاده کنید.
                            آموزش کتابخانه FF.h کدویژن ، که دوست خوبمان "حمید جان" در مثال های متعدد بررسی توضیح داده است.!
                            البته ناگفته نماند که کتابخانه pff.h که جناب اسدی عزیز زحمت توضیحات آن را کشیده اند ، خیلی جامع و کاربردی تر است
                            ولی خب من وقت نکردم روش کار کنم
                            -----------------------------------------------------------------------------------------------------------------------------------------------
                            برای Sample Rate هم نیازی به فرکانس دقیق نیست
                            در مثال برنامه جناب اسدی نیز این فرکانس دقیق نبوده کمی زیاد و کم است.
                            من هم با تایمر های 8 بیتی و 16 بیتی نتوستم به فرکانس دقیق برسم ، یا 200Hz کم یا بیشتر میشه که فکر نمیکنم زیاد مهم باشه.!
                            ---------------------------------------------------------------------------------------------------------------------------------------------------------
                            در مورد تست تایمر ها این کار و با پروتیوس انجام دهید.!
                            من در وقفه تایمر ها یکی از بیت ها را Toggle میکنم و با اسکوپ پروتیوس تست میکنم
                            ---------------------------------------------------------------------------------------------------------------------------------------------------------
                            اما در مورد کپی کردن کد ها در حافظه ، به نظر من کار منطقی نیست.
                            یک فایل با فرمت mp3* که ظرفیت آن 4Mb است وقتی تبدیل به Wav میشود ، تقریبا حجمی برابر 16 تا 17Mb دارد.
                            یعنی 3 الی 4 برابر حجم کد افزایش میابد.!
                            همانطور که جناب اسدی اشاره فرمودند فایل از حالت فشرده خارج میشود.!
                            ================================================== ============================
                            [glow=red,2,300] قابل توجه جناب اسدی [/glow]
                            اینترفیس Wav هم بررسی کردم مشکل خاصی نداشت.!
                            حجم فایل در بیت های 42 تا 45 (4 بایت) مشخص شده است.
                            شروع دیتا هم از آدرس 45 به بعد آغاز میشود.!

                            تنها مشکلی وجود داره اینه که از آدرس 46 یکسری کد تکراری 0x80 تکرار شده و تا آدرس39870 ادامه دارد.
                            من نمیدونم این ها چیه.؟
                            البته وقتی من فایل رو تبدیل به wav با مشخصات 8 بیتی و 32khz کردم ، در صدا هوا افتاده بود.!
                            نمیدونم شاید اینها هوای اول فایلههههه
                            نظر شما چیه.؟
                            قومي متفکرند اندر ره دين
                            قومي بگمان فتاده در راه يقين
                            ميترسم از آن که بانگ آيد روزي
                            که اي بي خبران ، راه نه آن است و نه اين...!

                            دیدگاه


                              #74
                              پاسخ : wave player & fat

                              سلام
                              ممنون اقای دادگستر من هم همین روند را می روم جلو ببینم چی می شه
                              در مورد کپی فایل هگز نیز من هم به این نتیجه رسیدم که خیلی حجم ما زیاده با فرکانس 22k هم اگه نمونه برداری بشه توی یک ثانیه 22k از اطلاعات ما یعنی اهنگ ما پخش می شه خیلی زیاد و در عین حال برام جالب بود
                              من هم با نرم افزار winhex فایل مورد بررسی قرار داده بودم جالبه برای من هم با 80 شروع می شد و یه عالمه 80 داشتم
                              ولی من نمی تونستم قسمتی از این کدها را بردارم ایا راهی هست که یک قسمت از اهنگ را جدا کرد با این نرم افزار :eek:
                              I'm Very Question and I have more Question,Please Answer All of my Questions


                              [img width=156 height=100]http://uploadtak.com/images/u3536_555_Timer_as_Astable.gif[/img]

                              دیدگاه


                                #75
                                پاسخ : wave player & fat

                                نوشته اصلی توسط very question
                                سلام
                                ممنون اقای دادگستر من هم همین روند را می روم جلو ببینم چی می شه
                                در مورد کپی فایل هگز نیز من هم به این نتیجه رسیدم که خیلی حجم ما زیاده با فرکانس 22k هم اگه نمونه برداری بشه توی یک ثانیه 22k از اطلاعات ما یعنی اهنگ ما پخش می شه خیلی زیاد و در عین حال برام جالب بود
                                من هم با نرم افزار winhex فایل مورد بررسی قرار داده بودم جالبه برای من هم با 80 شروع می شد و یه عالمه 80 داشتم
                                ولی من نمی تونستم قسمتی از این کدها را بردارم ایا راهی هست که یک قسمت از اهنگ را جدا کرد با این نرم افزار :eek:
                                شما میتونی یک قسمت رو انتحاب کنی : با Ctrl +C کپی کنی یا Delete کنی.!
                                قومي متفکرند اندر ره دين
                                قومي بگمان فتاده در راه يقين
                                ميترسم از آن که بانگ آيد روزي
                                که اي بي خبران ، راه نه آن است و نه اين...!

                                دیدگاه

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