اطلاعیه

Collapse
No announcement yet.

ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

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

    #16
    پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

    نوشته اصلی توسط baby_1
    سلام
    دوست من اگر منظورتون باید ریت هست باید بگم اعداد بادریت با کریستال و خطا با این دو رابطه مستقیم داره یعنی شما باید با فرمولی که در دیتاشیت تراشه تون ذکر شده خطا رو بدست بیارین اگر نرخ خطا با توجه به فرمول و کریستال و وضعیت ریجسترها از مقدار x.1 بیشتر شد باید نسبت به تغییر بادریت اقدام کنین
    در ضمن بادریت با این اعداد جز استاندارد rs232 نیست(من به شخصه تا به حال مشکلی نداشتم)

    شما باید از اینتراپت USART میکروتون برای این منظور استفاده کنین
    ممنون
    میدونم این چیزا رو اما هردو baud رو یک مقدار دادم و تست زدم
    حالا اینو بگزریم باید دقیق تست و بحث بشه

    اگه میشه در مورد اینتراپت USART توضیح بدید من منبعی پیدا نکردم ممنون میشم راهنمایی نمایید .

    دیدگاه


      #17
      پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

      سلام
      پیشنهاد می کنم کتاب کاهه رو مطالعه کنین توضیحات کلی در مورد این روش وجود داره
      این سایت رو هم ببینین
      http://www.qsl.net/pa3ckr/bascom%20and%20avr/interrupts/index.html
      قسمت
      UART interrupts
      هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

      دیدگاه


        #18
        پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

        ممنون خیلی خوب بود
        فقط من چطور میتونم بگم اگه اطلاعات کامل نیومد (مثلا کارکتر خط بعدی نیومد ) اونوقط منتظر نمونه اخه input منتظر میمونه تا ارسال تموم بشه و کارکتر اخر یا همون خط بعدی رو که دریافت کرد برنامه ادامه پیدا میکنه

        دیدگاه


          #19
          پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

          جناب baby_1 لطفا کمک

          دیدگاه


            #20
            پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

            سلام
            ممنون خیلی خوب بود
            فقط من چطور میتونم بگم اگه اطلاعات کامل نیومد (مثلا کارکتر خط بعدی نیومد ) اونوقط منتظر نمونه اخه input منتظر میمونه تا ارسال تموم بشه و کارکتر اخر یا همون خط بعدی رو که دریافت کرد برنامه ادامه پیدا میکنه
            دقیقا متوجه منظورتون نشدم ، یعنی با استفاده از اینتراپت مجددا از input استفاده می کنین؟
            دقیقا از کجا می شه متوجه شد که اطلاعات کامل ارسال نشده اند؟

            دستور input تا موقعی منتظر می مونه که کارکتر انتهای خط یا اینتر رو سنس کند
            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

            دیدگاه


              #21
              پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

              نوشته اصلی توسط baby_1
              سلام
              دقیقا متوجه منظورتون نشدم ، یعنی با استفاده از اینتراپت مجددا از input استفاده می کنین؟
              دقیقا از کجا می شه متوجه شد که اطلاعات کامل ارسال نشده اند؟

              دستور input تا موقعی منتظر می مونه که کارکتر انتهای خط یا اینتر رو سنس کند
              مثلا ما با کامپیوتر یه رشته ارسال میکنیم و توی میکرو میگیم با input بگیره خوب دستور input منتظر میمونه تا کارکتر انتهای خط ارسال بشه بعد رشته رو بر میگردونه حالا اگه وسط ارسال رشته کابل قطع بشه یا به دلیل نویز کارکتر های انتهایی اشتباه ارسال بشه دیگه کارکتر انتهای خطی در کار نخواهد بود . پس میکرو توی دستور input میمونه درسته ؟
              و من نمیخوام این اتفاق بیفته .

              دیدگاه


                #22
                پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

                سلام
                شما یه رشته تعریف کنین و در اینتراپت سریال رشته رو با کرکترهای دریافتی جدید پر کنین ، برای این منظور می تونین یه تاخیر یا تایمر رو به کار بندازین که نهایتا بعد از گذشت n ثانیه اگر کارکتری دریافت نشد متوجه قطع ارتباط بشین یا با inkey یک حلقه رو درست کنین و مدت زمانی که یک رشته باید ارسال بشه رو به صورت تاخیر در بیارین و اگر در این مدت رشته نرسید مطمئن بشین که کارکترهاتون نمی رسن یا انتهای رشته رو هم دریافت کردین و نهایتا به برنامه برگریدن
                این روشها رو باید با برنامه نویسی تمرین کنین ، توضیحات اینتراپت و همچنین inkey و ریجستر udr رو بخونین (در bascom(
                هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                دیدگاه


                  #23
                  پاسخ : ارسال و دریافت با پروتکل rs232 و متوقف نشدن برنامه

                  نوشته اصلی توسط baby_1
                  سلام
                  شما یه رشته تعریف کنین و در اینتراپت سریال رشته رو با کرکترهای دریافتی جدید پر کنین ، برای این منظور می تونین یه تاخیر یا تایمر رو به کار بندازین که نهایتا بعد از گذشت n ثانیه اگر کارکتری دریافت نشد متوجه قطع ارتباط بشین یا با inkey یک حلقه رو درست کنین و مدت زمانی که یک رشته باید ارسال بشه رو به صورت تاخیر در بیارین و اگر در این مدت رشته نرسید مطمئن بشین که کارکترهاتون نمی رسن یا انتهای رشته رو هم دریافت کردین و نهایتا به برنامه برگریدن
                  این روشها رو باید با برنامه نویسی تمرین کنین ، توضیحات اینتراپت و همچنین inkey و ریجستر udr رو بخونین (در bascom(
                  والا از نظر برنامه نویسی مشکلی ندارم از این روشی که شما گفتید استفاده کردم .
                  فقط خواستم ببینم روشی واسه غیر فعال کردن تابع input بعد از n ثانیه هست یا نه که انگاری نیست .
                  خیلی ممنون خیلی کمک کردید
                  موضوع به نتیجه رسید .

                  دیدگاه

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