اطلاعیه

Collapse
No announcement yet.

کمک در ارتباط دو میکرو با usart

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

    کمک در ارتباط دو میکرو با usart

    سلام دوستان
    من میخوام دو تا sam7x256 رو با usart به هم وصل کنم ولی هر کاری میکنم جواب نمیده
    برنامه ام رو میذارم لطفا کمکم کنید
    برنامه به این شکله که هر دوتا میکرو 0x55 رو باید برای هم بفرستند و اونا باید دیتای دریافتی رو روی tft نمایش بدن
    لطفا کمکم کنید
    ممنون
    کد:
    #include <AT91SAM7X256.h>
    #include <delay.h>
    #include "TFTLCD.h"
    #include "nature.h"
    char PORTRAIT = 0; 
    char data;
    //char q = 'B';
    int main(){
    tftlcd_init();
    *AT91C_PMC_PCER = 1<<6;//Enable pmc for usart
    *AT91C_PIOA_PDR =(1<<0|1<<1);//Disable pin0 pin 1	for usart0
    *AT91C_PIOA_ASR =(1<<0|1<<1);//duty a for usart
     //Usart configuration
    *AT91C_US0_CR = 0X88;
    *AT91C_US0_MR = 0x80;            
    *AT91C_US0_BRGR = 0x4E0;	         
    *AT91C_US0_CR = 1<<6;
    
    while(1){
     while (!(*AT91C_US0_CSR & 1<<1));	
      *AT91C_US0_THR = 0x55;
    	delay_ms(50);
      *AT91C_US0_RHR = data;
      tftlcd_putchar(data ,RED,GREEN,1);
      delay_ms(50);
      //tftlcd_putchar(q ,RED,GREEN,1);
      tftlcd_gotoxy(0,0);
    
    }
    }

    #2
    پاسخ : کمک در ارتباط دو میکرو با usart

    نوشته اصلی توسط امیر بمانی
    کسی جواب نمیدددددددددددددددددددددددددددددددددد :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2:ه؟
    سلام
    چرا از هدر استفاده نمیکنی؟
    برو اینجا برنامه نمونه با USART داره
    اول با هدر برو جلو بعدا خاستی عوض کن

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

    دیدگاه


      #3
      پاسخ : کمک در ارتباط دو میکرو با usart

      یه چیز خیلی مبهم نشون میده
      موقعی خطهای مربوط به usart رو برمیدارم اونو نمایش نمیده
      ولی اون عبارات مبهم موقعی حتی بین دوتا میکرو هیچ سیمی هم نباشه هست
      بین دو تا میکرو باید دو تا سیم به هم وصل باشه دیگه. درسته؟
      توی مد آسنکرون هست
      فقط یه چیزی
      توی این هدر برای این که کاراکتر a رو بفرستم باید چه دستوری بنویسم؟
      ممنون آقای ایمان فر

      دیدگاه


        #4
        پاسخ : کمک در ارتباط دو میکرو با usart

        آقای ایمان فر این برنامه
        اگه میشه یه نگاهی بهش میندازید
        کد:
        #include <AT91SAM7X256.H> 
        #include "delay.h"
        #include "usart.h"
        #include "TFTLCD.h"
        #include "nature.h"
        char PORTRAIT = 0; 
        char data;
        char *q="receive data";
        char C='c';
        int a;
        
        
        int main (void) {
        tftlcd_init();
        
        usart0_init(2,9600);
        while (1) {
        sendchar(C);
        		tftlcd_puts(q,BLUE,GREEN,1);
        		delay_ms(20);
        		a = getkey();
        		tftlcd_putchar(a,BLUE,GREEN,1);
        		delay_ms(100)
          delay_ms(50);
        	} 
        
        }
        راستی اگه به جای int a بنویسم char a بهم ارور میگیره
        بازم ممنون

        دیدگاه


          #5
          پاسخ : کمک در ارتباط دو میکرو با usart

          خب برنامه درسته
          منتها تو برنامه میکروی دیگت باید اول getkey باشه بعد sendchar
          زندگی یعنی امید و حرکت
          کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
          سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
          برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
          به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

          دیدگاه


            #6
            پاسخ : کمک در ارتباط دو میکرو با usart

            آقای ایمان فر درست شد
            ممنون از کمک های همیشگیتون...

            دیدگاه


              #7
              پاسخ : کمک در ارتباط دو میکرو با usart

              فقط یه چیز دیگه آقای ایمان فر
              میشه بین این دو میکرو عدد هم مبادله کرد؟
              ینی میکرو ها عددد بگیرن و tft ها عدد نمایش بدن؟
              اگه میشه دستوراتشو بگید
              ممنون

              دیدگاه


                #8
                پاسخ : کمک در ارتباط دو میکرو با usart

                آقای ایمان فر
                اینم برنامه جدید که نوشتم
                یه نگاه بهش میکنید
                ازش جواب نگرفتم
                کد:
                #include <AT91SAM7X256.h>
                #include <delay.h>
                #include "TFTLCD.h"
                #include "nature.h"
                char PORTRAIT = 0;
                char data; 
                /////////////////////////////////
                int main(){
                tftlcd_init();
                *AT91C_PMC_PCER|=(1<<AT91C_ID_US0);//Enable pmc for usart
                *AT91C_PIOA_PDR|=(AT91C_PA0_RXD0 | AT91C_PA1_TXD0);//Disable pin0 pin 1	for usart0
                *AT91C_PIOA_ASR =(AT91C_PIO_PA0 | AT91C_PIO_PA1);//duty a for usart
                 //Usart configuration
                *AT91C_US0_CR=(AT91C_US_RSTRX|AT91C_US_RSTTX|AT91C_US_RXEN|AT91C_US_TXEN);//RESET UART, Enable  Receiver & Transmitter
                *AT91C_US0_MR = (AT91C_US_USMODE_NORMAL | AT91C_US_CLKS_FDIV1 | // 8-bit characters    
                //USART Mode Register=(NORMAL MODE , Clock Selection= MCK/DIV (DIV = 8), 
                AT91C_US_CHRL_8_BITS | AT91C_US_NBSTOP_1_BIT);           
                *AT91C_US0_BRGR=0x27;     //BAURD RATE
                while(1){
                 //while (!(*AT91C_US1_CSR & 1<<1));
                
                while (!((*AT91C_US0_CSR) & AT91C_US_RXRDY));  // Wait for Empty Rx Buffer
                  data=*AT91C_US0_RHR ;
                  delay_ms(50);
                	while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY));// Wait for Empty Tx Buffer
                  *AT91C_US0_THR = 0x55;
                }
                }
                ////////////////////////////////////////
                یه توضیح کوچیک فقط بدم
                خط های مربوط به tft مشکلی ندارن
                چون از برد آموزشی خاصی استفاده میکنم هدرش یه کم فرق داره
                و اون خطوط مشکلی ندارن
                ممنون

                دیدگاه


                  #9
                  پاسخ : کمک در ارتباط دو میکرو با usart

                  آقای ایمان فر اگه میشه یه نگاهی بهش بندازید ببینید کجاش مشکل داره
                  کارم خیللی گیره.... :cry2:
                  ممنون

                  دیدگاه


                    #10
                    پاسخ : کمک در ارتباط دو میکرو با usart

                    نوشته اصلی توسط امیر بمانی
                    آقای ایمان فر اگه میشه یه نگاهی بهش بندازید ببینید کجاش مشکل داره
                    کارم خیللی گیره.... :cry2:
                    ممنون
                    سلام
                    چشم
                    ایشالا امشب یا فردا نگاش میکنم.
                    یه مشکلی برام پی اومده این یکی دو روزی درگیر بودم
                    شرمنده
                    زندگی یعنی امید و حرکت
                    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                    دیدگاه


                      #11
                      پاسخ : کمک در ارتباط دو میکرو با usart

                      خواهش میکنم آقابی ایمان فر
                      شما همیشه به ما لطف داشتید...

                      دیدگاه


                        #12
                        پاسخ : کمک در ارتباط دو میکرو با usart

                        نوشته اصلی توسط امیر بمانی
                        آقای ایمان فر
                        اینم برنامه جدید که نوشتم
                        یه نگاه بهش میکنید
                        ازش جواب نگرفتم
                        کد:
                        #include <AT91SAM7X256.h>
                        #include <delay.h>
                        #include "TFTLCD.h"
                        #include "nature.h"
                        char PORTRAIT = 0;
                        char data; 
                        /////////////////////////////////
                        int main(){
                        tftlcd_init();
                        *AT91C_PMC_PCER|=(1<<AT91C_ID_US0);//Enable pmc for usart
                        *AT91C_PIOA_PDR|=(AT91C_PA0_RXD0 | AT91C_PA1_TXD0);//Disable pin0 pin 1	for usart0
                        *AT91C_PIOA_ASR =(AT91C_PIO_PA0 | AT91C_PIO_PA1);//duty a for usart
                         //Usart configuration
                        *AT91C_US0_CR=(AT91C_US_RSTRX|AT91C_US_RSTTX|AT91C_US_RXEN|AT91C_US_TXEN);//RESET UART, Enable  Receiver & Transmitter
                        *AT91C_US0_MR = (AT91C_US_USMODE_NORMAL | AT91C_US_CLKS_FDIV1 | // 8-bit characters    
                        //USART Mode Register=(NORMAL MODE , Clock Selection= MCK/DIV (DIV = 8), 
                        AT91C_US_CHRL_8_BITS | AT91C_US_NBSTOP_1_BIT);           
                        *AT91C_US0_BRGR=0x27;     //BAURD RATE
                        while(1){
                         //while (!(*AT91C_US1_CSR & 1<<1));
                        
                        while (!((*AT91C_US0_CSR) & AT91C_US_RXRDY));  // Wait for Empty Rx Buffer
                          data=*AT91C_US0_RHR ;
                          delay_ms(50);
                        	while (!((*AT91C_US0_CSR) & AT91C_US_TXRDY));// Wait for Empty Tx Buffer
                          *AT91C_US0_THR = 0x55;
                        }
                        }
                        ////////////////////////////////////////
                        یه توضیح کوچیک فقط بدم
                        خط های مربوط به tft مشکلی ندارن
                        چون از برد آموزشی خاصی استفاده میکنم هدرش یه کم فرق داره
                        و اون خطوط مشکلی ندارن
                        ممنون
                        سلام
                        شرمنده دیر شد
                        ببین برنامت اومدی بدون توابع آماده نوشتی
                        من خودم همیشه از تابع آماده استفاده میکنم
                        شما اول از توابع آماده موجود در هدر کمک بگیر و از برنامه جواب بگیر بعد وارد نوشتن برنامه با رجیسترها بشو
                        وقتی جواب بگیری خیالت راحته بعد میای سراغ یه کار سخت تر
                        من الان نمیتونم با رجیستر ها بفهمم چون USART رو همیشه از توابع آماده جواب گرفتم
                        زندگی یعنی امید و حرکت
                        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                        سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                        دیدگاه

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