اطلاعیه

Collapse
No announcement yet.

ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

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

    #31
    پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

    من از دستور if else هم استفاده کردمم یعنی گفتم (اگه مقداری که روی پورت سریال است t و s نبود)
    else
    {
    PORTB=a;
    }
    ولی مقداری که روی پورت میریزه اشتباهه!!!! نمیدونم چرا!!!!!! :angry:

    دیدگاه


      #32
      پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

      من یه کار دیگه هم کردممم، اومدم حالا از دستور if استفاده کردم ولی گفتم اگه برابر s و t نبود بیا مقدار رو بریز توی PORTB

      if ( (a=!'t&#039&&(a=!'s&#039

      {
      PORTB=a;
      }

      این داره جواب میده ولی بیتها رو اشتباه میفرسته، فکر کنم مشکل دریافتش توی میکرو حل شد، واسه دریافت اشتباهشم فکر میکنم باید کریستال رو 11059200 بذارم ولی الان مشکل تنظیم فیوز بیت دارممم!!!

      دیدگاه


        #33
        پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

        برای تنظیم فیوز بیت از این لینک استفاده کنید
        http://www.engbedded.com/fusecalc
        The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

        دیدگاه


          #34
          پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

          نوشته اصلی توسط Soheilas
          من یه کار دیگه هم کردممم، اومدم حالا از دستور if استفاده کردم ولی گفتم اگه برابر s و t نبود بیا مقدار رو بریز توی PORTB

          if ( (a=!'t&#039&&(a=!'s&#039

          {
          PORTB=a;
          }

          این داره جواب میده ولی بیتها رو اشتباه میفرسته، فکر کنم مشکل دریافتش توی میکرو حل شد، واسه دریافت اشتباهشم فکر میکنم باید کریستال رو 11059200 بذارم ولی الان مشکل تنظیم فیوز بیت دارممم!!!
          همون کریستال 16 یا 12 مگ هم جواب میده. خطای 0.2% اونقدرا هم مهم نیست. همون کاری که من گفتم رو انجام دادی ؟ یعنی مطمئنی از سمت برنامه درست ارسال میشه ؟ تو ترمینال کد ویژن دیدی ؟
          ---------
          .
          .
          ...........

          دیدگاه


            #35
            پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

            ممنونم، من حتی کریستال رو عوض کردم 8 مگ داخلی با بادریت 1200 گذاشتم که خطاش صفر بشه اما...
            توی ارسال یه بیت درست عمل میکنه، مثلا من وقتی با کامند ویژوال بیسیک میگم توی میکرو یه پین رو یک کن انجام میده، (یعنی توی ارسال یه بیت و دریافت اون مشکلی نیست)
            ولی با همون برنامه ای ویژوال بیسیکی که بالا گذاشتم که عدد رو باینری میکنه من یه داده 8 بیتی رو که میفرستم 4 تا از این بیتها توی میکرو اشتباه دریافت میشه و 4 تاش درسته.......نمیدونم دیگه اشکال از چیه؟!!!!

            ــــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــ
            من از لینک زیر مقدار بادریت رو با کریستال تنظیم کردم
            http://www.wormfood.net/avrbaudcalc.php
            ولی الان که خودم حساب میکنم میبینم تقسیم اینا قسمت اعشاری داره......!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            دیدگاه


              #36
              پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

              نوشته اصلی توسط Soheilas
              ممنونم، من حتی کریستال رو عوض کردم 8 مگ داخلی با بادریت 1200 گذاشتم که خطاش صفر بشه اما...
              توی ارسال یه بیت درست عمل میکنه، مثلا من وقتی با کامند ویژوال بیسیک میگم توی میکرو یه پین رو یک کن انجام میده، (یعنی توی ارسال یه بیت و دریافت اون مشکلی نیست)
              ولی با همون برنامه ای ویژوال بیسیکی که بالا گذاشتم که عدد رو باینری میکنه من یه داده 8 بیتی رو که میفرستم 4 تا از این بیتها توی میکرو اشتباه دریافت میشه و 4 تاش درسته.......نمیدونم دیگه اشکال از چیه؟!!!!
              مشکل از تبدیله احتمال زیاد. یعنی دیتا درست ارسال نمیشه برای میکرو. فیوزبیت و اینجور چیزا مهم نیست.
              عددی که اونجا وارد میشه رو به صورت تکست یا رشته بفرست و توی میکرو تبدیلش کن. ببین اینجوری درسته یا نه ؟
              ---------
              .
              .
              ...........

              دیدگاه


                #37
                پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                من یه برنامه اینترفیس با VB دارم که در اون یه عدد مثل 128 رو ارسال میکنم به میکرو و از دستور getchar استفاده کردم واسه دریافت اون در میکرو حالا بلافاصله از دستور putchar استفادده کردم و اونو توی VB برگردوندم، ولی هر دفعه فقط یه کاراکتر ¤ توی VB دریافت میشه یعنی اگه عدد دریافتی رو هم تغییر بدم باز همین کاراکتر ¤ رو توی ویژوال بیسیک برمیگردونه............نمیدونم مشکل از چیه؟!!!!!!!!!!!!!! ولی واسه یه بیت درست عمل میکنه......مثلا با یه کلیلک در ویژوال من میتونم یه پین رو توی میکرو کنترل کنم..

                دیدگاه


                  #38
                  پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                  دوست عزیز برنامتون داره درست کار میکنه، اون علامتی که گذاشتین دقیقا کد اسکیش 128 هست.خب معلومه چرا! برنامه شما داره با getchar کار می کنه
                  این تابع هم فقط 1 بایت میگیره نه بیشتر، برای بیت های بالاتر از توابع دریافت رشته استفاده کنید.
                  The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                  دیدگاه


                    #39
                    پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                    ممنونم، اخه من 128 رو تغییر دادم به 256 و یا هر عدد دیگه ای دوباره همین کاراکتر ¤ رو براممم فرستاد...چرا؟
                    الان تابع getchar رو به gets تغییر میدمم ببینم چی میشه؟

                    دیدگاه


                      #40
                      پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                      شاید از متغیر با علامت استفاده می کنید.
                      The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                      دیدگاه


                        #41
                        پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                        کسی هیچ برنامه ای کوتاهی نداره که توی اون یه سری عدد رو که ممکنه تغییر هم بکنه از Visual Basic و از طریق RS232 به میکرو AVR منتقل کرده باشه،؟ من واقعا موندمممممم

                        دیدگاه


                          #42
                          پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                          یه سوال علمی؟!!! :rolleyes:

                          این درسته که در ارتباط rs232 استفاده از کریستال خارجی بهتر از داخلیه؟!!!من توی مدارم از کریستال داخلی 4MHz استفاده کردم و اونو فعال کردمم و نه خارجی، میشه اشکال از اون باشه؟ (یاد آوری کنم مشکل الانه من اینه که مدارم توی انتقال یه بیت درست عمل میکنه ولی توی 8 بیت مشکل داره و 4 تا از بیتها رو اشتباه میفرسته؟!!!)

                          دیدگاه


                            #43
                            پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                            نوشته اصلی توسط Soheilas
                            یه سوال علمی؟!!! :rolleyes:

                            این درسته که در ارتباط rs232 استفاده از کریستال خارجی بهتر از داخلیه؟!!!من توی مدارم از کریستال داخلی 4MHz استفاده کردم و اونو فعال کردمم و نه خارجی، میشه اشکال از اون باشه؟ (یاد آوری کنم مشکل الانه من اینه که مدارم توی انتقال یه بیت درست عمل میکنه ولی توی 8 بیت مشکل داره و 4 تا از بیتها رو اشتباه میفرسته؟!!!)
                            بله معمولا برای ارتباط با کامپیوتر از کریستال خارجی استفاده میشه.
                            ---------
                            .
                            .
                            ...........

                            دیدگاه


                              #44
                              پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                              من تونستم عددمو به میکرو انتقال بدم، یعنی مثلا عدد 2 رو فرستادم توی میکرو و با دستور getchar() اونو دریافت میکنم، حالا میخام اونو به هگز تبدیل کنم و روی پورت B میکرو قرارش بدمم، کسی میتونه بهم توی تبدیل عدد دهدهی به هگز و قرار دادن روی پورت کمکم کنه؟ دستور و یا تابع خاصی برای اون میشناسین؟

                              دیدگاه


                                #45
                                پاسخ : ارسال داده باینری از طریق پورت سریال بر روی پورت میکرو

                                وقتی عدد 2 رو میگیری، داخل میکرو دیگه تفاوتی بین مقدار هگز و دهدهی اون نیست. مستقیم اونو بریز روی پورتت.
                                ---------
                                .
                                .
                                ...........

                                دیدگاه

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