اطلاعیه

Collapse
No announcement yet.

علت ارسال نشدن اطلاعات از میکرو به PC

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

    علت ارسال نشدن اطلاعات از میکرو به PC

    سلام
    اطلاعات از PC(نرم افزار Hyper Terminal ) به میکرو به درستی ارسال میشه ولی اطلاعات از میکرو به PC (نرم افزار Hyper Terminal ) ارسال نمیشه...
    مشکل چیه به نظرتون؟؟؟
    در ضمن من از ماژول مبدل USB به TTL با تراشه CP2102 استفاده کردم برا اتصال میکرو و PC به هم دیگه

    اینم کد های پروژم

    کد:
    #include <mega16.h>
    #include <stdio.h>
    #include <delay.h>
    #include <lcd.h>
    #asm
      .equ __lcd_port=0x1b //PORTA
    #endasm
     
    void main() 
    {
      char str[1];
     
      UCSRA=0x00;
      UCSRB=0x10;
      UCSRC=0x86;
      UBRRH=0x00;
      UBRRL=51;
     
      lcd_init(16);
      
      while(1)
      {
        gets(str,1); 
        lcd_puts(str);
      }
    }
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

    برای انتقال اطلاعات از میکرو به هایپر ترمینال مگه نباید از دستورش استفاده بشه؟!!! شما در برنامه تون یه پورت واسه ال سی دی تعریف کردید و دستور واسه انتقال دیتا از کامپیوتر به میکرو نوشتید (gets) ولی از میکرو به کامپیوتر چی؟

    دیدگاه


      #3
      پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

      نوشته اصلی توسط Soheilas
      برای انتقال اطلاعات از میکرو به هایپر ترمینال مگه نباید از دستورش استفاده بشه؟!!!
      دستورات چی؟؟؟(متوجه نشدم میشه دقیق تر بگید)

      شما در برنامه تون یه پورت واسه ال سی دی تعریف کردید و دستور واسه انتقال دیتا از کامپیوتر به میکرو نوشتید (gets) ولی از میکرو به کامپیوتر چی؟
      درسته حرف شما....این کدی که من گزاشتم به نظر میاد که ناقص باشه.......در واقع کد پروژه (قسمت while) به صورت زیر هستش.
      کد:
          gets(str,1); 
          lcd_puts(str);
           puts(str);
      که چیزی رو که دریافت کرده رو ارسال میکنه
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

      اگه دوس دارید سریع به جواب برسید :
      1) قبل از پرسیدن سوال، بسرچید.
      2) سوالاتون رو با جزئیات کامل مطرح کنید.

      دیدگاه


        #4
        پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

        واسه انتقال اطلاعات به کامپیوتر از دستور puts یا putchar استفاده میشه که اولی واسه رشتست، با این دستور یه تست کنین، فکر کنم مشکلتون برطرف میشه

        دیدگاه


          #5
          پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

          نوشته اصلی توسط Soheilas
          واسه انتقال اطلاعات به کامپیوتر از دستور puts یا putchar استفاده میشه که اولی واسه رشتست، با این دستور یه تست کنین، فکر کنم مشکلتون برطرف میشه
          داداش من از این کد استفاده کردم..
          کد:
           gets(str,1); 
              lcd_puts(str);
               puts(str);
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

          اگه دوس دارید سریع به جواب برسید :
          1) قبل از پرسیدن سوال، بسرچید.
          2) سوالاتون رو با جزئیات کامل مطرح کنید.

          دیدگاه


            #6
            پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

            نوشته اصلی توسط Soheilas
            واسه انتقال اطلاعات به کامپیوتر از دستور puts یا putchar استفاده میشه که اولی واسه رشتست، با این دستور یه تست کنین، فکر کنم مشکلتون برطرف میشه
            داداش من از این کد استفاده کردم..
            کد:
                gets(str,1); 
                lcd_puts(str);
                 puts(str);
            ولی چیزی تو هایپر ترمینال نشون داده نمیشه... :cry2:
            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

            اگه دوس دارید سریع به جواب برسید :
            1) قبل از پرسیدن سوال، بسرچید.
            2) سوالاتون رو با جزئیات کامل مطرح کنید.

            دیدگاه


              #7
              پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

              من تا حالا با ماژولی که شما گفتین کار نکردممم، ولی باید جواب بده، یه داده مشخص بفرستین مثلا putchar ('x&#039

              ببینین چیزی نشون میده؟

              شایدم باید از UDR استفاده کنین، بیت اونو چک کنین و در اینصورت ارسال کنین،
              یه برنامه ساده برای ارسال و دریافت در یوزارت اینه:


              [code=c]

              [code=c][/code]

              # define F_CPU 8000000UL
              #include <avr/io.h>
              #include <util/delay.h>

              int main(void)
              {
              UCSRC |= (1<<UMSEL); // select asynchronous mode
              UBRRH = 51>>8; // higher 8 bits of 51
              UBRRL = 51; // lower 8 bits of 51
              UCSRB |= (1<<RXEN)|(1<<TXEN); // enable transmitter and receiver both
              UCSRC |= (1<<UCSZ0)|(1<<UCSZ1); // number of data bits is 8
              char Mujhe_Bhejo = 'a', Mai_aa_gaya;

              while(1)
              {
              while(UCSRA & (1<<UDRE) == 0) {}; // empty loop - to wait for UDR to be ready for data
              UDR = Mujhe_Bhejo;
              _delay_ms(10); // you can omit this delay if you want - just 'timepass'

              while(UCSRA & (1<<RXC) ==0) {}; //empty loop - to wait for UDR to be ready
              Mai_aa_gaya = UDR;
              _delay_ms(10); // same with this delay as above
              }
              }

              [/code]

              دیدگاه


                #8
                پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

                نوشته اصلی توسط md3848
                داداش من از این کد استفاده کردم..
                کد:
                    gets(str,1); 
                    lcd_puts(str);
                     puts(str);
                ولی چیزی تو هایپر ترمینال نشون داده نمیشه... :cry2:
                چیکار به هایپرترمینال داری. برو توی ترمینال خود کدویژن. اونجا بهتره. بعد بیا و مجموعه ای از اعداد رو بفرست و اونجا فرمت نمایش رو هگز انتخاب کن نه اسکی.
                یه توصیه دوستانه : برو و با لب ویو کار کن. خیلی راحت تره.
                ---------
                .
                .
                ...........

                دیدگاه


                  #9
                  پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

                  فایر وال!!!؟؟؟

                  دیدگاه


                    #10
                    پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

                    الان این کد من هستش....مشکلش چیه؟؟؟؟
                    کد:
                    #include <mega16.h>
                    #include <stdio.h>
                    #include <delay.h>
                    #include <lcd.h>
                    #asm
                      .equ __lcd_port=0x1b //PORTA
                    #endasm
                     
                    void main() 
                    {
                      char str[1];
                     
                      UCSRA=0x00;
                      UCSRB=0x10;
                      UCSRC=0x86;
                      UBRRH=0x00;
                      UBRRL=51;
                     
                      lcd_init(16);
                      
                      while(1)
                      {
                        gets(str,1); 
                        putchar('*');
                        
                        if(str[0]==0x1b){lcd_clear();}//Exe=lcd_clear()
                        else lcd_puts(str);
                        delay_ms(100);
                      }
                    }

                    در ضمن از ترمینال کدویژن استفاده کردم(خیلی خیلی بهتر از هایپر ترمینال هستش) و باز چیزی از طرف میکرو به کامپیوتر ارسال نمیشه(و در ترمینال کدویژن نمایش داده نمیشه)
                    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                    اگه دوس دارید سریع به جواب برسید :
                    1) قبل از پرسیدن سوال، بسرچید.
                    2) سوالاتون رو با جزئیات کامل مطرح کنید.

                    دیدگاه


                      #11
                      پاسخ : علت ارسال نشدن اطلاعات از میکرو به PC

                      من وقتی txd و rxd ماژول رو به هم وصل میکنم اطلاعات به کامپیوتر ارسال میشه(هر چیز که دریافت میکن رو تو ترمینال نشون میده) ولی نمیدونم چرا تو کد نویسی که میگم یه چیز رو ارسال کن ، ارسال نمیشه...
                      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                      اگه دوس دارید سریع به جواب برسید :
                      1) قبل از پرسیدن سوال، بسرچید.
                      2) سوالاتون رو با جزئیات کامل مطرح کنید.

                      دیدگاه

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