اطلاعیه

Collapse
No announcement yet.

راه اندازی ماژول df player mini با بسکام و avr

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

    #31
    پاسخ : راه اندازی ماژول df player mini با بسکام و avr

    بنده با دستور inkey تونستم دریافت داشته باشم همون طوری که شما فرمودی به محض شروع شدن آهنگ اینا رو دریافت میکنم 239 ; 225 ; 126
    ​بعد تموام شدن آهنگ چیزی دریافت نمیشه که بدونم کی اهنگ تموم شد.

    معلولیت محدودیت نیست

    آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

    دیدگاه


      #32
      پاسخ : راه اندازی ماژول df player mini با بسکام و avr

      نوشته اصلی توسط mahdi210 نمایش پست ها
      دوستان الان بنده اگر بخوام با این ماژول یک عدد رو که دریافت کردم پخش کنم چکار باید بکنم؟ مانند سیستم نوبت دهی بانک . میدونم باید طبق جدول ارزش مکانی که کلاس دوم دبستان خوندیم باید یه بار اعداد یک تا نه رو به صورت صوتی ظبط کنیم جدا جدا -بعد دهتایی هارو جداجدا وبعد صدتایی هایی هارو و ... حالا مشکل بنده اینجا ست که از کجا بدونم این ماژول فلان ترک رو پخش کرد وتموم شد؟؟ چون بلافاصله میخوام بعد پایان این ترک یه ترک جدید رو پخش کنم ترکی هست 20 ثانیه یا یکیش یه جمله داره که 1 دقیقه مدتشه مثل اعلام طبقه آسانسور
      ممنون میشم اگر تجربه ای دارید بفرمایید
      سلام دوست عزیز
      این که زحمت زیادی نمیخواد!! پایه BUSY در ماژول واسه همین کاره. وقتی صوت متوقف هست این پایه یک میشه و زمانی که در حال پخش صدا میباشد صفر میشه. شما باید توی برنامه از این پایه استفاده کنید و صبر کنید تا این پایه یک بشه و سپس صوت بعدی رو پخش کنید.
      موفق باشید
      قال امام صادق (ع):
      هر چیزی زکاتی دارد و زکات علم آنست که به اهلش بیاموزی.

      دیدگاه


        #33
        پاسخ : راه اندازی ماژول df player mini با بسکام و avr

        نوشته اصلی توسط esmaeil57 نمایش پست ها
        سلام دوست عزیز
        این که زحمت زیادی نمیخواد!! پایه BUSY در ماژول واسه همین کاره. وقتی صوت متوقف هست این پایه یک میشه و زمانی که در حال پخش صدا میباشد صفر میشه. شما باید توی برنامه از این پایه استفاده کنید و صبر کنید تا این پایه یک بشه و سپس صوت بعدی رو پخش کنید.
        موفق باشید
        ممنون تست کردم حق باشماست . فکر کنم با این کارم راه بیوفته
        معلولیت محدودیت نیست

        آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

        دیدگاه


          #34
          پاسخ : راه اندازی ماژول df player mini با بسکام و avr

          ممنون از دوستان بنده بالاخره موفق شدم از پوشه مورد نظر ترک مورد نظرم رو پخش کنم و بالا فاصله بعد از پایان ترک ، ترک بعدی که مد نظرم بود رو پخش کردم
          جدیدترین ویرایش توسط mahdi210; ۲۲:۲۷ ۱۳۹۶/۱۲/۰۹.
          معلولیت محدودیت نیست

          آنکس که عاجز از خلق لحظه هاست، معلول است. نه من...روح بلند آدمیت فراتر از هر معلولیتی است.

          دیدگاه


            #35
            پاسخ : راه اندازی ماژول df player mini با بسکام و avr

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

            دیدگاه


              #36
              پاسخ : راه اندازی ماژول df player mini با بسکام و avr

              بعد از کلی سروکله زن به این نتیجه رسیدم که بدون چکسام کار نمیکنه مثلا دستورات زیر
              'Printbin &H7E ; &HFF ; &H06 ; &H0D ; &H00 ; &H00 ; &H00 ; &HFE ; &HEE ; &HEF 'play with checksum
              'Printbin &H7E ; &HFF ; &H06 ; &H0E ; &H00 ; &H00 ; &H00 ; &HFE ; &HED ; &HEF 'puse with checksum
              با اضافه کردن چکسام بولدشده که بیشتر برای امنیت گفتن استفاده میکشه کار نمیکرد
              در زیر هم دوتا لینک گذاشتم شاید بدرد دوستان خورد. درضما در زیر مازول ها گفتن مقاومت 4.7 با 47 اشتباه نصب کردن که در لینک های پایین توضیح داده شده
              ماژول DFPlayer مینی یک ماژول کوچک و ارزان MP3 است که با یک خروجی ساده می تواند مستقیما به اسپیکر متصل شود. این ماژول قابلیت استفاده بطور مستقل به همراه

              سلام به همه دوستان من با این ماژول کار کردم تفریبا کامل هست فقط چندتا موضوع : 1 : توی دیتا شیت نوشته بلندگو رو مستقیم به خروجی های SPK1 و SPK2 وصل میشه

              wiki:DFRobot Mini Mp3 Player is an extremely low cost MP3 module that can be interfaced with Arduino. It supports common audio formats such as MP3, WAV and WMA.

              امیدوارم مشکل دوستان هم با این کار حل بشه
              در جهان هرگز مشو مدیون احساس کسی - تا نباشد رایگان مهرت گروگان کسی
              گوهر خود را نزن بر سنگ هر ناقابلی - صبر کن پیدا شود گوهر شناس قابلی

              دیدگاه


                #37
                پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                سلام
                دوستانی که استفاده کردند کیفیت پخش چطوره؟ اگر مثلا به هنذفری وصل بشه میشه باهاش mp3 پلیر ساخت؟

                دیدگاه


                  #38
                  پاسخ : راه اندازی ماژول df player mini با بسکام و avr

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

                  دیدگاه


                    #39
                    پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                    نوشته اصلی توسط hosseinam نمایش پست ها
                    وقتی که به ورودی آمپلی میدم . همراه با صدا نویز رو هم میفرسته.
                    یه سال و نیم هست که داره رو پروژ هام کار میکنه بدونه مشکلی.
                    البته با میکرو وقتی که پخش تموم شد میآم تغذیشو خاموش میکنم.یه عملا در لحظه های بدون کار خاموشه .
                    سلام
                    مهندس آیا این نویزی که میفرمایید میتونه ناشی از عدم تطبیق امپدانس باشه ؟؟؟
                    آرزوی سرافرازی برای ایران عزیز . . .


                    دیدگاه


                      #40
                      پاسخ : راه اندازی ماژول df player mini با بسکام و avr

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

                      دیدگاه


                        #41
                        پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                        نوشته اصلی توسط hosseinam نمایش پست ها
                        متاسفانه نمیدونم تطبیق امپدانس چیه. ولی حتی اومدیم صدای خروجی رو کم کردیم و دادیم به آمپلی بازم نشد.یعنی نویز داشت. آمپلی مشکلی نداشت.
                        چون بحث تطبیق امپدانس خارج از مبحث تاپیک هست تنها یه لینک میدم دوستان بخونن چون خیلی خوب و مفصل صحبت شده
                        با سلام به دوستان عزیز حتما" براتون پیش اومده که یک آمپلی ساختید و وقتی یک پری یا تون کنترل بهش وصل کردین دیدین که تو خروجی مقداری هوم یا وززززز یا ... وجود داره . اینجاست که بحث تطبیق امپدانس بین پری و آمپ مطرح میشه . از دوستان خواهش میکنم اگر ایده ای یا روشی برای تطبیق امپدانس مدارات واسط با آمپ دارند در اینجا مطرح
                        آرزوی سرافرازی برای ایران عزیز . . .


                        دیدگاه


                          #42
                          پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                          سلام به دوستان

                          بنده چند بار تلاش کردم این ماژول رو با میکرو راه بندازم اما موفق نشدم
                          نمیدونم مشکل از کجاست !
                          این از برنامه
                          اجرای ترک شماره 001 در میکرو sd که با فرمت fat32 فرمت شده و سپس آهنگ رو مموری ریخته شده
                          از صحت ارتباط سریال میکرو مطمئن هستم
                          ماژول هم بدون میکرو بدون هیچ مشکلی آهنگ اجرا میکنه


                          کد:
                          [FONT=Yekan]/*******************************************************[/FONT]This program was created by the
                          CodeWizardAVR V3.12 Advanced
                          Automatic Program Generator
                          © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
                          http://www.hpinfotech.com
                          
                          
                          Project : 
                          Version : 
                          Date    : 09/11/2018
                          Author  : 
                          Company : 
                          Comments: 
                          
                          
                          
                          
                          Chip type               : ATmega8A
                          Program type            : Application
                          AVR Core Clock frequency: 8.000000 MHz
                          Memory model            : Small
                          External RAM size       : 0
                          Data Stack size         : 256
                          *******************************************************/
                          
                          
                          #include <mega8.h>
                          #include <delay.h>
                          
                          
                          // Declare your global variables here
                          
                          
                          #define DATA_REGISTER_EMPTY (1<<UDRE)
                          #define RX_COMPLETE (1<<RXC)
                          #define FRAMING_ERROR (1<<FE)
                          #define PARITY_ERROR (1<<UPE)
                          #define DATA_OVERRUN (1<<DOR)
                          
                          
                          // USART Receiver buffer
                          #define RX_BUFFER_SIZE 8
                          char rx_buffer[RX_BUFFER_SIZE];
                          
                          
                          #if RX_BUFFER_SIZE <= 256
                          unsigned char rx_wr_index=0,rx_rd_index=0;
                          #else
                          unsigned int rx_wr_index=0,rx_rd_index=0;
                          #endif
                          
                          
                          #if RX_BUFFER_SIZE < 256
                          unsigned char rx_counter=0;
                          #else
                          unsigned int rx_counter=0;
                          #endif
                          
                          
                          // This flag is set on USART Receiver buffer overflow
                          bit rx_buffer_overflow;
                          
                          
                          // USART Receiver interrupt service routine
                          interrupt [USART_RXC] void usart_rx_isr(void)
                          {
                          char status,data;
                          status=UCSRA;
                          data=UDR;
                          if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                             {
                             rx_buffer[rx_wr_index++]=data;
                          #if RX_BUFFER_SIZE == 256
                             // special case for receiver buffer size=256
                             if (++rx_counter == 0) rx_buffer_overflow=1;
                          #else
                             if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                             if (++rx_counter == RX_BUFFER_SIZE)
                                {
                                rx_counter=0;
                                rx_buffer_overflow=1;
                                }
                          #endif
                             }
                          }
                          
                          
                          #ifndef _DEBUG_TERMINAL_IO_
                          // Get a character from the USART Receiver buffer
                          #define _ALTERNATE_GETCHAR_
                          #pragma used+
                          char getchar(void)
                          {
                          char data;
                          while (rx_counter==0);
                          data=rx_buffer[rx_rd_index++];
                          #if RX_BUFFER_SIZE != 256
                          if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                          #endif
                          #asm("cli")
                          --rx_counter;
                          #asm("sei")
                          return data;
                          }
                          #pragma used-
                          #endif
                          
                          
                          // USART Transmitter buffer
                          #define TX_BUFFER_SIZE 8
                          char tx_buffer[TX_BUFFER_SIZE];
                          
                          
                          #if TX_BUFFER_SIZE <= 256
                          unsigned char tx_wr_index=0,tx_rd_index=0;
                          #else
                          unsigned int tx_wr_index=0,tx_rd_index=0;
                          #endif
                          
                          
                          #if TX_BUFFER_SIZE < 256
                          unsigned char tx_counter=0;
                          #else
                          unsigned int tx_counter=0;
                          #endif
                          
                          
                          // USART Transmitter interrupt service routine
                          interrupt [USART_TXC] void usart_tx_isr(void)
                          {
                          if (tx_counter)
                             {
                             --tx_counter;
                             UDR=tx_buffer[tx_rd_index++];
                          #if TX_BUFFER_SIZE != 256
                             if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
                          #endif
                             }
                          }
                          
                          
                          #ifndef _DEBUG_TERMINAL_IO_
                          // Write a character to the USART Transmitter buffer
                          #define _ALTERNATE_PUTCHAR_
                          #pragma used+
                          void putchar(char c)
                          {
                          while (tx_counter == TX_BUFFER_SIZE);
                          #asm("cli")
                          if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
                             {
                             tx_buffer[tx_wr_index++]=c;
                          #if TX_BUFFER_SIZE != 256
                             if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
                          #endif
                             ++tx_counter;
                             }
                          else
                             UDR=c;
                          #asm("sei")
                          }
                          #pragma used-
                          #endif
                          
                          
                          // Standard Input/Output functions
                          #include <stdio.h>
                          
                          
                          
                          
                          ///////////////////////////////////////////////////////////////////////////////   main()
                          void main(void)
                          {
                          
                          
                          unsigned char str[10],n;
                          
                          
                          PORTB.0=1;   // pull up
                          
                          
                          // USART initialization
                          // Communication Parameters: 8 Data, 1 Stop, No Parity
                          // USART Receiver: On
                          // USART Transmitter: On
                          // USART Mode: Asynchronous
                          // USART Baud Rate: 9600
                          UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
                          UCSRB=(1<<RXCIE) | (1<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
                          UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
                          UBRRH=0x00;
                          UBRRL=0x33;
                          
                          
                          // Global enable interrupts
                          #asm("sei")
                          
                          delay_ms(3000);
                          
                          while (1)
                             {       
                                 
                               
                               if ( !PINB.0 )  
                                 {      
                                    
                                    str[0]=0x7E;        // start
                                    str[1]=0xFF;        // ver
                                    str[2]=0x06;        // len
                                    str[3]=0x03;        // cmd
                                    str[4]=0;           // feedback
                                    str[5]=0x00;        // para1
                                    str[6]=0x01;        // para2 
                                    str[7]=0;           // checksum
                                    str[8]=0xEF;        // end
                                    
                                    n=0;
                                    while( n<9 )
                                      { 
                                       putchar( str[n++] );
                                       delay_ms(10);
                                      }
                                             
                                    while(1);  
                                 }  
                              }
                          }
                          جدیدترین ویرایش توسط rezamajdi; ۱۲:۲۵ ۱۳۹۷/۰۶/۲۲.
                          آرزوی سرافرازی برای ایران عزیز . . .


                          دیدگاه


                            #43
                            پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                            سلام مهندس

                            ممکنه به دلیل سطح ولتاژ نابرابر سریال ماژول و میکرو این مشکل حادث شده

                            دیدگاه


                              #44
                              پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                              نوشته اصلی توسط Fake نمایش پست ها
                              سلام مهندس

                              ممکنه به دلیل سطح ولتاژ نابرابر سریال ماژول و میکرو این مشکل حادث شده
                              سلام
                              خیر بنده با مقاومت 1 کیلو اهم طبق گفته دیتاشیت این مشکل رو حل کردم
                              اما همچنان با میکرو نتونستم با این ماژول ارتباط برقرار کنم
                              دوستان راهنمایی کنن

                              با تشکر
                              آرزوی سرافرازی برای ایران عزیز . . .


                              دیدگاه


                                #45
                                پاسخ : راه اندازی ماژول df player mini با بسکام و avr

                                نوشته اصلی توسط rezamajdi نمایش پست ها
                                سلام به دوستان

                                بنده چند بار تلاش کردم این ماژول رو با میکرو راه بندازم اما موفق نشدم
                                نمیدونم مشکل از کجاست !
                                این از برنامه
                                اجرای ترک شماره 001 در میکرو sd که با فرمت fat32 فرمت شده و سپس آهنگ رو مموری ریخته شده
                                از صحت ارتباط سریال میکرو مطمئن هستم
                                ماژول هم بدون میکرو بدون هیچ مشکلی آهنگ اجرا میکنه


                                کد:
                                [FONT=Yekan]/*******************************************************[/FONT]This program was created by the
                                CodeWizardAVR V3.12 Advanced
                                Automatic Program Generator
                                © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
                                http://www.hpinfotech.com
                                
                                
                                Project : 
                                Version : 
                                Date    : 09/11/2018
                                Author  : 
                                Company : 
                                Comments: 
                                
                                
                                
                                
                                Chip type               : ATmega8A
                                Program type            : Application
                                AVR Core Clock frequency: 8.000000 MHz
                                Memory model            : Small
                                External RAM size       : 0
                                Data Stack size         : 256
                                *******************************************************/
                                
                                
                                #include <mega8.h>
                                #include <delay.h>
                                
                                
                                // Declare your global variables here
                                
                                
                                #define DATA_REGISTER_EMPTY (1<<UDRE)
                                #define RX_COMPLETE (1<<RXC)
                                #define FRAMING_ERROR (1<<FE)
                                #define PARITY_ERROR (1<<UPE)
                                #define DATA_OVERRUN (1<<DOR)
                                
                                
                                // USART Receiver buffer
                                #define RX_BUFFER_SIZE 8
                                char rx_buffer[RX_BUFFER_SIZE];
                                
                                
                                #if RX_BUFFER_SIZE <= 256
                                unsigned char rx_wr_index=0,rx_rd_index=0;
                                #else
                                unsigned int rx_wr_index=0,rx_rd_index=0;
                                #endif
                                
                                
                                #if RX_BUFFER_SIZE < 256
                                unsigned char rx_counter=0;
                                #else
                                unsigned int rx_counter=0;
                                #endif
                                
                                
                                // This flag is set on USART Receiver buffer overflow
                                bit rx_buffer_overflow;
                                
                                
                                // USART Receiver interrupt service routine
                                interrupt [USART_RXC] void usart_rx_isr(void)
                                {
                                char status,data;
                                status=UCSRA;
                                data=UDR;
                                if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                                   {
                                   rx_buffer[rx_wr_index++]=data;
                                #if RX_BUFFER_SIZE == 256
                                   // special case for receiver buffer size=256
                                   if (++rx_counter == 0) rx_buffer_overflow=1;
                                #else
                                   if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                                   if (++rx_counter == RX_BUFFER_SIZE)
                                      {
                                      rx_counter=0;
                                      rx_buffer_overflow=1;
                                      }
                                #endif
                                   }
                                }
                                
                                
                                #ifndef _DEBUG_TERMINAL_IO_
                                // Get a character from the USART Receiver buffer
                                #define _ALTERNATE_GETCHAR_
                                #pragma used+
                                char getchar(void)
                                {
                                char data;
                                while (rx_counter==0);
                                data=rx_buffer[rx_rd_index++];
                                #if RX_BUFFER_SIZE != 256
                                if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                                #endif
                                #asm("cli")
                                --rx_counter;
                                #asm("sei")
                                return data;
                                }
                                #pragma used-
                                #endif
                                
                                
                                // USART Transmitter buffer
                                #define TX_BUFFER_SIZE 8
                                char tx_buffer[TX_BUFFER_SIZE];
                                
                                
                                #if TX_BUFFER_SIZE <= 256
                                unsigned char tx_wr_index=0,tx_rd_index=0;
                                #else
                                unsigned int tx_wr_index=0,tx_rd_index=0;
                                #endif
                                
                                
                                #if TX_BUFFER_SIZE < 256
                                unsigned char tx_counter=0;
                                #else
                                unsigned int tx_counter=0;
                                #endif
                                
                                
                                // USART Transmitter interrupt service routine
                                interrupt [USART_TXC] void usart_tx_isr(void)
                                {
                                if (tx_counter)
                                   {
                                   --tx_counter;
                                   UDR=tx_buffer[tx_rd_index++];
                                #if TX_BUFFER_SIZE != 256
                                   if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
                                #endif
                                   }
                                }
                                
                                
                                #ifndef _DEBUG_TERMINAL_IO_
                                // Write a character to the USART Transmitter buffer
                                #define _ALTERNATE_PUTCHAR_
                                #pragma used+
                                void putchar(char c)
                                {
                                while (tx_counter == TX_BUFFER_SIZE);
                                #asm("cli")
                                if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
                                   {
                                   tx_buffer[tx_wr_index++]=c;
                                #if TX_BUFFER_SIZE != 256
                                   if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
                                #endif
                                   ++tx_counter;
                                   }
                                else
                                   UDR=c;
                                #asm("sei")
                                }
                                #pragma used-
                                #endif
                                
                                
                                // Standard Input/Output functions
                                #include <stdio.h>
                                
                                
                                
                                
                                ///////////////////////////////////////////////////////////////////////////////   main()
                                void main(void)
                                {
                                
                                
                                unsigned char str[10],n;
                                
                                
                                PORTB.0=1;   // pull up
                                
                                
                                // USART initialization
                                // Communication Parameters: 8 Data, 1 Stop, No Parity
                                // USART Receiver: On
                                // USART Transmitter: On
                                // USART Mode: Asynchronous
                                // USART Baud Rate: 9600
                                UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
                                UCSRB=(1<<RXCIE) | (1<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
                                UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
                                UBRRH=0x00;
                                UBRRL=0x33;
                                
                                
                                // Global enable interrupts
                                #asm("sei")
                                
                                delay_ms(3000);
                                
                                while (1)
                                   {       
                                       
                                     
                                     if ( !PINB.0 )  
                                       {      
                                          
                                          str[0]=0x7E;        // start
                                          str[1]=0xFF;        // ver
                                          str[2]=0x06;        // len
                                          str[3]=0x03;        // cmd
                                          str[4]=0;           // feedback
                                          str[5]=0x00;        // para1
                                          str[6]=0x01;        // para2 
                                          str[7]=0;           // checksum
                                          str[8]=0xEF;        // end
                                          
                                          n=0;
                                          while( n<9 )
                                            { 
                                             putchar( str[n++] );
                                             delay_ms(10);
                                            }
                                                   
                                          while(1);  
                                       }  
                                    }
                                }

                                خوشبختانه df player های تقلبی هم رسیدن به بازار.
                                10 تا خریده بودم فقط با پایه ها آهنگ پخش میشد و ارتباط سریالشون خراب.
                                رفتم تهران 100 خریدم ارتباط سریالشون خوب ولی بعضی دستورات رو مثل کم و زیاد کردن صدا رو اجرا نمیکنن.
                                در صورتی که همین کد رو df player های قبل تحریم همشون درست کار میکرد.

                                شما ببین پشت df player دوتا آیسی که هست روش باید شماره باشه . اگه نیست بر من که همشون تقلبی بود.
                                اونی که ارتباط سریالش سالم بود یکی از آیسی های شماره داره یکی دیگشون نداره.
                                به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
                                (پیش به سوی هدف)

                                دیدگاه

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