اطلاعیه

Collapse
No announcement yet.

usart

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

    usart

    سلام
    من میخوام با lm35 دما را بخونم بریزم تو میکرو واز طریقه ارتباط سریال usart بریزم تو یه میکرو دیگه و تو lcd نمایش بدم
    نمیدونم چرا وقتی میریزم توlcd دما رو همین طوری پشت سر هم نمایش میده
    وقتی میخواد دمای 16.2 نمایش بده میشه 216.2 اینجوری میشه عدد بعد ممیز بعدی هم میفته کنارش
    :angry: :angry: oo:

    #2
    پاسخ : usart

    نوشته اصلی توسط hosseinip
    سلام
    من میخوام با lm35 دما را بخونم بریزم تو میکرو واز طریقه ارتباط سریال usart بریزم تو یه میکرو دیگه و تو lcd نمایش بدم
    نمیدونم چرا وقتی میریزم توlcd دما رو همین طوری پشت سر هم نمایش میده
    وقتی میخواد دمای 16.2 نمایش بده میشه 216.2 اینجوری میشه عدد بعد ممیز بعدی هم میفته کنارش
    :angry: :angry: oo:
    میشه برنامتونو قرار بدید.....

    دیدگاه


      #3
      پاسخ : usart

      کد فرستنده :
      کد:
      while (1)
         {   
         v=read_adc(0);
         v=v*500.0/1023.0;    
         sprintf(str,"temp:%2.2fc",v);
         puts(str);
         }
      }

      دیدگاه


        #4
        پاسخ : usart

        کد گیرنده :
        کد:
        while (1)
           { 
           gets(d,9);
           lcd_puts(d);
           lcd_gotoxy(0,0);
           }      
        }

        دیدگاه


          #5
          پاسخ : usart

          نوشته اصلی توسط hosseinip
          کد فرستنده :
          کد:
          while (1)
             {   
             v=read_adc(0);
             v=v*500.0/1023.0;    
             sprintf(str,"temp:%2.2fc",v);
             puts(str);
             }
          }
          با توجه به خروجی واحد adc میکرو که باید ی عدد 8 بیتی باشه
          متغیر v هم باید یک متغیر با فضای 8بیت یا بیشتر باشه ....
          شما توی دستور SPRINTF
          از %C استفاده کردید اگه اشتباه نکنک این مال کارکتر هست
          و این عباراتی که در کنار این %C قرار دادید

          برای عباراتی از جنس FLOAT بکار مییره برای اینکه مشخص میکنه تا جند رقم اعشار نشون بده...

          شما بیا V از جنس UNSIGNED INT تعریف کن و تو برنامتون هم درستور
          SPRINTF
          به شکل زیروارد کنید
          کد:
          sprintf(str,"temp:%U",v);





          دیدگاه


            #6
            پاسخ : usart

            نوشته اصلی توسط hosseinip
            کد گیرنده :
            کد:
            while (1)
               { 
               gets(d,9);
               lcd_puts(d);
               lcd_gotoxy(0,0);
               }      
            }
            دستور LCD CLEAR()
            تو اخر برنامه قرار بده...
            کد:
            while (1)
               { 
               gets(d,9);
               lcd_gotoxy(0,0);
            lcd_puts(d);
            lcd_clear();
               }      
            }

            دیدگاه


              #7
              پاسخ : usart

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

              دیدگاه


                #8
                پاسخ : usart

                نوشته اصلی توسط hosseinip
                من این کارو هم کردم ولی باز همون جوری میشه
                فکر می کنم مشکل از گیرندم
                با ید جوری بنویسم بعوان مثال وقتی کارکتری رو دید شروع کنه به گرفتن دیتا
                ولی نمیدونم چطوری کدش بنویسم
                متغیر d توی کیرنده از چه جنسیه ؟

                باید از نوع کارکتر باشه>>>>

                دیدگاه


                  #9
                  پاسخ : usart

                  کد:
                  unsigned char d[10];

                  دیدگاه


                    #10
                    پاسخ : usart

                    نوشته اصلی توسط hosseinip
                    کد:
                    unsigned char d[10];
                    char d[10];
                    اینو تست کن...

                    دیدگاه


                      #11
                      پاسخ : usart

                      برنامه گیرنده رو به این شکل قرار بده

                      کد:
                      while (1)
                         { 
                         gets(d,9);
                         lcd_gotoxy(0,0);
                      lcd_puts(d);
                      lcd_clear();
                         }      
                      }


                      دیدگاه


                        #12
                        پاسخ : usart

                        بازم همون مشکل داره به شکل دیگه

                        دیدگاه


                          #13
                          پاسخ : usart

                          نوشته اصلی توسط hosseinip
                          بازم همون مشکل داره به شکل دیگه
                          چه شکلی؟

                          دیدگاه


                            #14
                            پاسخ : usart

                            شبیه سازشو با کدش اینجا اپلود کردم
                            http://s4.picofile.com/file/8179516692/UART.rar.html

                            دیدگاه


                              #15
                              پاسخ : usart

                              اینجا رو ببین:
                              http://www.eca.ir/forum2/index.php?topic=90089.0
                              www.gam-co.blogsky.com

                              دیدگاه

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