اطلاعیه

Collapse
No announcement yet.

راهنمایی در usart

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

    راهنمایی در usart

    سلام
    برنامه به این صورته که :مستر یه رشته ارسال میکنه که بیت اول آدرس وبقیه دستورند و اسلیو ها رشته رو دریافت میکنن و آدرس رو چک میکنن بعدش در صورت درست بودن آدرس پایه های خروجی مورد نظر رو یک میکنن.
    اما برنامه جواب نمیده؟(حتما اشتباهه)
    مستر
    کد:
    #include <mega8.h>
    #include <stdio.h>
    
    // Declare your global variables here
    
    void main(void)
    {
    char tx[5]={'0','1','2','3'};
    
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 4800
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x67;
    
    
       puts(tx);
    
      
    }
    اسلیو
    کد:
    #include <mega8.h>
    
    // Standard Input/Output functions
    #include <stdio.h>
    
    // Declare your global variables here
    
    void main(void)
    {
    char rx[4];
    DDRC=1;
    PORTC=0;
    
    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: Off
    // USART Mode: Asynchronous
    // USART Baud Rate: 4800
    UCSRA=0x00;
    UCSRB=0x10;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x67;
    gets(rx,4);
    if(rx[0]==0)PORTC.0=1;
    if(rx[1]==2)PORTC.1=1;
    if(rx[2]==2)PORTC.2=1;
    while (1)
       {
       
    
    
    
       }
    }

    پرتئوس
    http://www.mediafire.com/?3axm1icjpbqc5d3
    چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.

    #2
    پاسخ : راهنمایی usart

    توی گیرنده(اسلیو) شما اگه بخوای 3 نا پین اول پورت c رو خروجی کنی باید:
    کد:
    DDRC=0x07;
    همچنین بسیار بهتر است که خودت قشنگ و اصولی با پورت سریال ارتباط برقرار کنی و تا میتونی از توابع stdio استفاده نکنی (البته به نظر من)
    میتونی بری تو این وبلاگ تمرین برای پورت سریال هست.فکر میکنم کمکت میکنه:
    mortazavi91.mihanblog.com
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
    کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
    http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،

    دیدگاه


      #3
      پاسخ : راهنمایی usart

      نوشته اصلی توسط RubeuS
      توی گیرنده(اسلیو) شما اگه بخوای 3 نا پین اول پورت c رو خروجی کنی باید:
      کد:
      DDRC=0x07;
      همچنین بسیار بهتر است که خودت قشنگ و اصولی با پورت سریال ارتباط برقرار کنی و تا میتونی از توابع stdio استفاده نکنی (البته به نظر من)
      میتونی بری تو این وبلاگ تمرین برای پورت سریال هست.فکر میکنم کمکت میکنه:
      mortazavi91.mihanblog.com
      مهندس این وبلاگ تمرینی در رابطه با پورت سریال نداشت
      چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.

      دیدگاه


        #4
        پاسخ : راهنمایی usart

        نوشته اصلی توسط صادق ابراهیمی
        مهندس این وبلاگ تمرینی در رابطه با پورت سریال نداشت
        تمرین های 1 2 3 مربوط به پورت سریاله. توی این تمرین ها از روش پولینگ استفاده نشده و براساس اینتراپت سریال هست که خیلی بهتر و زیباتر از روش پولینگ و busy_wating روی فلگ دریافت و ارسال سریاله.
        راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
        کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
        نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
        http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
        انشالله به زودي تاپيک ها به روز رساني خواهد شد،

        دیدگاه


          #5
          پاسخ : راهنمایی usart

          کسی نظری نداره ؟
          چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.

          دیدگاه


            #6
            پاسخ : راهنمایی در usart

            بیا بالا :cry:
            چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.

            دیدگاه


              #7
              پاسخ : راهنمایی در usart

              سلام
              منم تقریبا مشکل شما رو داشتم بعد از کلی آزمون خطا و استفاده از توابع مختلف به این نتیجه رسیدم که فقط توابع putchar و getchar تو ارتباط سریال جواب میدن،البته برای ارسال و دریافت بیش از 3 بایت لازمه که از rx interrupt و tx interrupt هم استفاده کنید

              دیدگاه


                #8
                پاسخ : راهنمایی در usart

                نوشته اصلی توسط fum_com
                سلام
                منم تقریبا مشکل شما رو داشتم بعد از کلی آزمون خطا و استفاده از توابع مختلف به این نتیجه رسیدم که فقط توابع putchar و getchar تو ارتباط سریال جواب میدن،البته برای ارسال و دریافت بیش از 3 بایت لازمه که از rx interrupt و tx interrupt هم استفاده کنید
                میشه برنامتو بزاری ؟
                چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.

                دیدگاه


                  #9
                  پاسخ : راهنمایی در usart

                  نوشته اصلی توسط صادق ابراهیمی
                  میشه برنامتو بزاری ؟
                  بفرمایید:
                  کد:
                  while (1)
                     {
                     putchar(0x22); 
                     delay_ms(3000); 
                     lcd_clear();
                     for(i=0;i<5;i=i+2){
                     b[0]=getchar();
                     b[1]=getchar(); 
                     result = (b[0] <<8) + b[1];
                     sprintf(s, "%c = %u  ",c[i],result/10);
                     lcd_puts(s);
                     delay_ms(1500);
                     }
                  این کد برای کار با ماژوله فک نکنم زیاد به دردتون بخوره،شما تو کدویزارد قسمت usart تیکه rx interrupt و tx interrupt رو بزار و برای ارسال و دریافت از getchar , putchar استفاده کن یعنی کاراکتر کاراکتر بفرست

                  دیدگاه

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