اطلاعیه

Collapse
No announcement yet.

2 تا سوال در مورد UART ??????????

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

    #16
    پاسخ : 2 تا سوال در مورد UART ??????????

    دیتا بیت بیت ارسال و دریافت میشه یا بایت بایت؟
    به نظرم باس بیت بیت باشه

    =============================

    در ضمن وقفه ارسال و دریافتمون رو باس داخل وقفه USART_Data_Register_Empty قرار بدیدم دیگه مگه نه؟؟؟؟؟
    مثلا میخوای دیتا بفرستیم...وقفه خالی بودن UDR رخ میده.....و بعد وقفه ارسال دیتا رخ میده؟؟؟؟

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

    کدومش درسته؟؟؟؟
    دومی که به قیافش میخوره درست باشه ولی اولی رو نمیدونم
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

    دیدگاه


      #17
      پاسخ : 2 تا سوال در مورد UART ??????????

      تو قسمت انتخاب فرمت دیتای ارسالی چند تا گزینه هست
      1 بیت شروع
      8 بیت دیتا یا 9 بیت دیتا
      1 یا 2 بیت توقف
      اگر قرار باشه بایت به بایت ارسال بشه، چطور با قالبی که گفتم این دیتا ارسال میشه ؟
      ---------
      .
      .
      ...........

      دیدگاه


        #18
        پاسخ : 2 تا سوال در مورد UART ??????????

        همون وقفه دریافت هم از اینجا میاد.
        ارسال که بیت به بیت باشه، یعنی پایه دریافت دیتا Rx بسته به قالب دیتای ارسالی صفر و یک هست.
        اگر دقت کنی میگند که این پایه رو پول پ کنید. یعنی تو حالت عادی یک هست. همین دیتا میاد اول از همه بیت سروع برای میکرو ارسال میشه یعنی اولین بیت صفر هستش. این تغییر سطح به میکرو میفهمونه که وقفه بده .
        ---------
        .
        .
        ...........

        دیدگاه


          #19
          پاسخ : 2 تا سوال در مورد UART ??????????

          فرق بین بیت 5 ریجستر UCSRA و بیت 5 ریجستر UCSRB ؟؟؟؟؟؟؟؟؟؟؟

          ببین درست میگم؟؟؟؟؟؟؟؟

          بیت 5 ریجستر UCSRA : برسی آماده بودن ارسال دیتا ....
          بیت 5 ریجستر UCSRB : برسی آماده بودن دریافت دیتا...به شرطی که از اون ور هم میکرو آماده ارسال دیتا باشه و بیت 5 ریجستر UCSRA در اون میکرو 1 شده باشه.....
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

          دیدگاه


            #20
            پاسخ : 2 تا سوال در مورد UART ??????????

            بیت 5 رجسیتر UCSRA : اگر رجیستر UDR خالی باشه، یک میشه. برای حالت ارسال کاربرد داره.
            بیت 5 رجیستر UCSRB : اگر بیت 5 رجیستر UCSRA یک باشه، به محض خالی شدن رجیستر UDR در حالت فرستنده، یک وقفه میده.
            در حقیقت از اولی استفاده میشه تا اگر ارسال دیتای اول تموم شد، دیتای بعدی اراسل بشه. چون اگر در حین ارسال دیتا، رجیستر UDR پر بشه، دیتای ارسالی خراب میشه. برای همین میان و توی یک دستور وایل اون بیت رو چک می کنند. به این روش میگند پولینگ که با دستور putchar توی کدویژن پیاده سازیش کردند.
            دومی هم زمانی کاربرد داره که مثلا بخوای بدونی که ارسالت تموم میشه.
            ---------
            .
            .
            ...........

            دیدگاه

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