اطلاعیه

Collapse
No announcement yet.

مشکل کارنکردن برنامه ماژول DFplayer

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

    مشکل کارنکردن برنامه ماژول DFplayer

    سلام هدف اینه که ماژول dfplayer را با مگا8 راه اندازی کنم ، و با فشار میکروسئیچ 1 ترک اول پخش بشه و با زدن میکروسوئیچ دوم ترک 2 پخش شود.اما جواب نمیده این هم برنامه اش :
    #include <mega8.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <delay.h>

    char current_track_number;

    int default_buffer[10] = {0x7E , 0xFF , 0x06 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF}; // Default Buffer
    int buffer_data[10] = {0x7E , 0xFF , 0x06 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF}; // Sending Buffer

    // Send Buffer to UART TX Pin
    void send_buffer(void) {
    int i;
    for( i=0; i< 10; i++){
    putchar(buffer_data[i]);
    buffer_data[i] = default_buffer[i];
    }
    }

    // Set Volume And Send it's Serial Command
    void set_volume( int volume ) {
    buffer_data[3] = 0x06;
    buffer_data[6] = volume;
    send_buffer();
    }

    // Set a Track (1-3000) to Play
    void play_track1(int track_id) {
    buffer_data[3] = 0x03;
    if(track_id < 256) {
    buffer_data[6] = track_id;
    } else {
    buffer_data[5] = track_id / 256;
    buffer_data[6] = track_id - 256 * buffer_data[6];
    }
    send_buffer();
    }

    // Set a Folder (1-255) and Track (1-255) to Play
    void play_trackf(int folder_id, int track_id) {
    buffer_data[3] = 0x0F;
    buffer_data[5] = folder_id;
    buffer_data[6] = track_id;
    send_buffer();
    }

    // Set a Track to Play Continuous
    void play_current_track_continuous(void) {
    buffer_data[3] = 0x08;
    buffer_data[6] = current_track_number;
    send_buffer();
    }

    // Pause Current Playing Track
    void pause_current_track() {
    buffer_data[3] = 0x0E;
    send_buffer();
    }

    void main(void)
    {
    DDRB.1=0;
    DDRB.2=0;
    PORTB.1=1;
    PORTB.2=1;
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 9600
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x33;

    while(1) {

    if(PINB.1==0)
    {
    play_trackf(01, 001);
    delay_ms(30);
    }
    if(PINB.2==0)
    {
    play_trackf(01, 002);
    delay_ms(30);
    }


    }
    }


    اگر کسی از ذوستان با این ماژول کار کرده و توانسته با mega8 راه اندازیش کنه راهنمایی کنه
    خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

    #2
    پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

    با درود
    اخرین خط برنامه ت یعنی خط 90 یه دیلای 10 ثانیه ای بذار و امتحان کن اگر درست شد مشکل همین جاست
    جدیدترین ویرایش توسط کاکو; ۱۱:۴۸ ۱۴۰۰/۰۸/۱۷.

    دیدگاه


      #3
      پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

      نوشته اصلی توسط کاکو نمایش پست ها
      با درود
      اخرین خط برنامه ت یعنی خط 90 یه دیلای 10 ثانیه ای بذار و امتحان کن اگر درست شد مشکل همین جاست
      جواب نداد !
      فقط برنامه warning هم میده و اینکه کلاک میکرو رو هم 1 مگاهرتز در نظر گرفتم ، فیوز بیت های میکرو رو هم روی 1 مگاهرتز تنظیم کردم

      تنظیم کلاک :
      خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

      دیدگاه


        #4
        پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

        ایا قبلا از ارتباط سریال استفاده کردی ؟
        من نمیتونم همه برنامه رو بررسی کنم و با این ماژول هم کار نکردم
        فقط باید تنظیمات سریال تونو با تنظیمات ماژولتون هماهنگ کنید
        و همچنین توی عکس ها مشاهده میشه که اررور هم دارید
        و همچنین توی قسمتی که قبلا اشاره کردم
        کلاک تو تنظیمات کدویژن هم با سخت افزار تون هم یکی باشه
        کلا ارتباطتات میکرو برنامه نویسشون حساس و یکی از بزرگترین دلایل بد نام شدن ای وی ار ها در زمینه هنگ هستن
        امیدوارم مشکتون حل بشه
        در کل مشکلات برنامه نویسی معمولا با پرسش پاسخ حل نمیشه بلکه باید از پایه قوی باشید و به خودتون متکی باشید

        و هیچ پایه ای از میکرو به صورت پورت تعریف نشده ؟ شما یک فرستنده سریال دارید که باید خروجی تعریفش میکردید
        جدیدترین ویرایش توسط کاکو; ۱۴:۴۲ ۱۴۰۰/۰۸/۱۷.

        دیدگاه


          #5
          پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

          نوشته اصلی توسط fmicro نمایش پست ها
          سلام هدف اینه که ماژول dfplayer را با مگا8 راه اندازی کنم ، و با فشار میکروسئیچ 1 ترک اول پخش بشه و با زدن میکروسوئیچ دوم ترک 2 پخش شود.اما جواب نمیده این هم برنامه اش :

          اگر کسی از ذوستان با این ماژول کار کرده و توانسته با mega8 راه اندازیش کنه راهنمایی کنه
          با سلام و احترام
          من با این ماژول کار نکرده ام ولی چیزی که در دیتاشیتش دیدم اینه که پکتهای دیتای سریال ارسالی باید 10 بایت باشه که بایت هشتم و نهمش Checksum هست و بنظر میاد در برنامه شما لحاظ نشده است.
          موفق باشید.
          جدیدترین ویرایش توسط evergreen; ۰۸:۳۵ ۱۴۰۰/۰۸/۱۸.

          دیدگاه


            #6
            پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

            نوشته اصلی توسط کاکو نمایش پست ها
            ایا قبلا از ارتباط سریال استفاده کردی ؟
            من نمیتونم همه برنامه رو بررسی کنم و با این ماژول هم کار نکردم
            فقط باید تنظیمات سریال تونو با تنظیمات ماژولتون هماهنگ کنید
            و همچنین توی عکس ها مشاهده میشه که اررور هم دارید
            و همچنین توی قسمتی که قبلا اشاره کردم
            کلاک تو تنظیمات کدویژن هم با سخت افزار تون هم یکی باشه
            کلا ارتباطتات میکرو برنامه نویسشون حساس و یکی از بزرگترین دلایل بد نام شدن ای وی ار ها در زمینه هنگ هستن
            امیدوارم مشکتون حل بشه
            در کل مشکلات برنامه نویسی معمولا با پرسش پاسخ حل نمیشه بلکه باید از پایه قوی باشید و به خودتون متکی باشید

            و هیچ پایه ای از میکرو به صورت پورت تعریف نشده ؟ شما یک فرستنده سریال دارید که باید خروجی تعریفش میکردید

            خیر error نداره ...من کتابخانه آماده این ماژول را از خود سایت سازنده اش گرفتم و دقیقا با خود mega8 کانفیگ شده بود ... و بعد اینکه گفتید دیلای 10 ثانیه یا 10 میلی ثانیه ؟!!
            و اینکه بدون استفاده از میکروکنترلر نمی توان تنها با استفاده از ماژول به هدف برسم ؟ (یعنی دو تا میکروسوئیچ بذارم و میکروسوئیچ اول ترک اول رو پخش کنه و میکروسوئیچ دوم ترک دوم ) ؟
            جدیدترین ویرایش توسط fmicro; ۱۹:۳۰ ۱۴۰۰/۰۸/۱۷.
            خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

            دیدگاه


              #7
              پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

              نوشته اصلی توسط fmicro نمایش پست ها
              خیر error نداره ...من کتابخانه آماده این ماژول را از خود سایت سازنده اش گرفتم و دقیقا با خود mega8 کانفیگ شده بود ... و بعد اینکه گفتید دیلای 10 ثانیه یا 10 میلی ثانیه ؟!!
              و اینکه بدون استفاده از میکروکنترلر نمی توان تنها با استفاده از ماژول به هدف برسم ؟ (یعنی دو تا میکروسوئیچ بذارم و میکروسوئیچ اول ترک اول رو پخش کنه و میکروسوئیچ دوم ترک دوم ) ؟
              نوشته بودم 10 ثانیه و یک زمان برای تست بود که متوجه بشیم اشکال از این جاست یا نه با مشکلات بیشتری رو به رو هستیم
              و باز هیج پایه رو خروجی تعریف نکرده بودید با توجه به فرستنده بودن پین مربوطه باید خروجی تعریف بشه که نیست
              و باز طبق گفته دوست گرامی اشکالات نرم افزاری و ساختاری در برنامه شما مشاهده شده
              اگر توجه کرده باشید سوال در مورد برنامه و برنامه نویسی در این انجمن بندرت رخ میده و این برای این هعست که پاسخ دهنده باید کل برنامه رو چک کنه
              بشکلی که خودش از صفر شروع کنه همه چی رو چک کنه یا برنامه بنویسه تا متوجه اشکالات بشه
              با نگاه کردن به برنامه فقط میشه اشکالات فاحش رو مشاهده کرد

              و در مورد سوال اخرتون .. نمیدونم چون اصلا نمیدونم این ماژول چی هست و اگر در رابطه با ضیط و پخش هست که متونید در موردش سرچ کنید
              و دیتاشیت رو مطالعه کنید اگر همچین قابلیتی باشه حتما در دیتاشیت بهش اشاره میشه
              توی برخی مدل ها همچین قابلیت های وجود داره

              خط 82 و غیره ؟ چرا آرگمان تابع رو 001 گذاشتی ؟ صفر نمیخواد اگر عدد مورد نظر 1 هست خب بذار 1 دیگه 001 چرا ؟
              احساس میکنم این برنامه دست خورده چون اشکالات فاحشی توش دیده میشه
              جدیدترین ویرایش توسط کاکو; ۲۰:۴۰ ۱۴۰۰/۰۸/۱۷.

              دیدگاه


                #8
                پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

                این 001 گذاشتن طبق دستور العمل خود استفاده ماژول است که باید ترک ها با 001 ت 255 و فولدر آنها با 01 نامگذاری شود. این برنامه دقیقا از سایت زیر گرفته شده و حالا من اومدم یکسری کد برای پخش ترک 1 و و ترک 2 نوشتم منظور شما از خروجی کردن پایه TXD میکرو است بله این اشتباه را اصلاح میکنم ؟ ولی 98 درصد برنامه داخل سایت زیر است و سورس آن موجود است :
                https://gist.github.com/ElyDotDev/6782d67457d1f87626f6#file-dfplayer_mini_avr-txt


                خدایا یکی بزرگترین آرزویهایم در این دنیا این است که همه مردم حالشان خوب باشد و احساس خوشبختی داشته باشند....

                دیدگاه


                  #9
                  پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

                  نوشته اصلی توسط fmicro نمایش پست ها
                  این 001 گذاشتن طبق دستور العمل خود استفاده ماژول است که باید ترک ها با 001 ت 255 و فولدر آنها با 01 نامگذاری شود. این برنامه دقیقا از سایت زیر گرفته شده و حالا من اومدم یکسری کد برای پخش ترک 1 و و ترک 2 نوشتم منظور شما از خروجی کردن پایه TXD میکرو است بله این اشتباه را اصلاح میکنم ؟ ولی 98 درصد برنامه داخل سایت زیر است و سورس آن موجود است :
                  https://gist.github.com/ElyDotDev/6782d67457d1f87626f6#file-dfplayer_mini_avr-txt


                  با سلام مجدد
                  براتون یه پیشنهاد دارم. از اونجایی که برنامه کاری جز فرستادن 10 بایت به پورت سریال نباید انجام بده ( البته اگر برنامه اصولی بخواهید بنویسید باید دیتای برگشتی از ماژول را هم بخوانید و پردازش کنید ) و هر بار تغییر در برنامه و کمپایل و اجراش واقعا حوصله سر بر میباشد بیایید و یک مبدل USB به سریال (TTL) به کامپیوتر وصل کنید و از طریق اون و یک ترمینال به ماژول دیتا بفرستید. برای شروع
                  7E FF 06 03 00 00 01 FF E6 EF
                  را بفرستید و ببینید آیا فایل اول را پخش میکند یا نه. حتما فایل MP3 را با نام 001 و با پسوند mp3 در فولدری که در روت SD با نام 01 نامگذاری کرده اید قرار دهید.

                  دیدگاه


                    #10
                    پاسخ : مشکل کارنکردن برنامه ماژول DFplayer

                    نوشته اصلی توسط fmicro نمایش پست ها
                    این 001 گذاشتن طبق دستور العمل خود استفاده ماژول است که باید ترک ها با 001 ت 255 و فولدر آنها با 01 نامگذاری شود. این برنامه دقیقا از سایت زیر گرفته شده و حالا من اومدم یکسری کد برای پخش ترک 1 و و ترک 2 نوشتم منظور شما از خروجی کردن پایه TXD میکرو است بله این اشتباه را اصلاح میکنم ؟ ولی 98 درصد برنامه داخل سایت زیر است و سورس آن موجود است :
                    https://gist.github.com/ElyDotDev/6782d67457d1f87626f6#file-dfplayer_mini_avr-txt


                    خب برنامه کامل نیست و اگر اون قسمت اخر برنامه رو خالی نمیذاشت خیلی ابهامات و مشکلات حل میشد و باز به قول دوست گرامی مون از مواردی صرف نظر کرده
                    البته برنامه شیرینی داره تعجب برانگیز بود یعنی سعی شده کاربر راحت ازش استفاده کنه
                    خب
                    ;set_volume ( 255 )
                    اینو خط 77 بذار با حالی که نمیدونم باید چه عددی گذاشت احتمالا تو دیتاشیت بشه پیداش کرد
                    اون 10 ثانیه رو هم بذار و و اون پین رو خروجی تعیریف کن
                    از اینجا به بعد فقط میتونم برای موفقیتت دعا کنم


                    جدیدترین ویرایش توسط کاکو; ۱۲:۱۲ ۱۴۰۰/۰۸/۱۸.

                    دیدگاه

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