اطلاعیه

Collapse
No announcement yet.

بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

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

    بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

    سلام
    والا تو آردوینو اگه اشتب نکنم بافر ارسال و دریافت USART یه چیز حدود 64 بایت بود....یه چیز تو این مایه ها...دقیقش خاطرم نیست

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

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

    #2
    پاسخ : بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

    سلام.
    بافر دریافت و یا ارسال در AVR به صورت سخت افزاری 8 بیت هستش.
    تو بعضی از کارها و برنامه ها میان و بافر نرم افزاری با حجم دلخواه و مشخص تعریف می کنند.
    پس فعال سازی و فعال بودن پیش فزض معنی نداره.
    تو همین کدویژن هم اگر از کدویزارد استفاده کنی و وقفه رو فعال کنی می تونی حجم بافر دریافت و ارسال رو مشخص کنی.
    ---------
    .
    .
    ...........

    دیدگاه


      #3
      پاسخ : بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

      پس اگه بافر نرم افزاری رو 8 بیت تنظیم بشه و بافر سخت افزاری هم که میگی 8 بیته.....حالا یه بحث بافر ارسال و یه بحث بافر دریافت ما داریم-------که مجموعا میشه 4*8 برابر 32 تا بایت.....

      حالا اگه 33 بایت دیتا ارسال بشه و ما دیتا رو نخونیم(و بزاریم تو همون بافر دریافت کننده بمونه)......16 تای اولی میره تو بافر نرم افزاری و سخت افزاری دریافت کننده و 16 تای بعدی هم میره تو بافر ارسال نرم افزاری و سخت افزاری و 1 بایت آخری و بایت های بعدی(به شرط دریافت نکردن دیتا ها توسط دریافت کننده) از بین میره درسته؟؟؟؟؟



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


      وای وای وای ....رمان نوشتم ^_^
      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

      دیدگاه


        #4
        پاسخ : بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

        وای وای وای ....رمان نوشتم ^_^
        رمان تخیلی نوشتی !!! :applause:
        پست قبلی رو با دقت بخون. میگم یک بافر سخت افزاری اریم با ظرفیت 8 بیت که میشه 1 بایت. این بایت با اومدن دیتای جدید پدیت میشه. اگر هم تو فرصت لازم نتونی دیتا رو از بافر بخونی (همون UDR معروف)، یک فلگ به اسم Data overrun از رجیستر UCSRA یک میشه. یعنی قبل از خوندن دیتا، دیتای جدید دریافت شده. همین قصه ها در مورد ارسال هم برقراره.
        بافر نرم افزاری یعنی مثلا من میام یک آرایه تعریف می کنم به اندازه 8 بایت و تو وقفه دریافت هر بار یک خونه ازشو با دیتای دریافتی پر می کنم. اینجا بافر نرم افزاری من 8 بایت هستش و همیشه و همه جا بافر سخت افزاری میکروی AVR بازم میگم همیشه 8 بیت هستش.
        معمولا میان و بعد از پر شدن بافر یک فلگ رو ست می کنند، بعد میکرو یهو بافر رو می خونه و ادامه ماجرا ... .
        پس اگه بافر نرم افزاری رو 8 بیت تنظیم بشه و بافر سخت افزاری هم که میگی 8 بیته.....حالا یه بحث بافر ارسال و یه بحث بافر دریافت ما داریم-------که مجموعا میشه 4*8 برابر 32 تا بایت.....
        تو اشتباه باز هم اشتباه داشتی !!! 4 تا 8 بیت میشه 32 بایت ؟؟؟؟
        ---------
        .
        .
        ...........

        دیدگاه


          #5
          پاسخ : بافر ارسال و دریافت USART در avr >>> مقدارش و نحوه فعال کردنش؟

          ^_^
          کلا همش بایت بود....جایی هم که نوشتم بیت اشتباه تایپی بوده....

          پس که این طور...من فکر میکردم اگه 32 بایت(بیت ^_^) رو ارسال کنیم-----8 تای اول تو بافر دریافت نرم افزاری و 8 تای بعد تو بافر دریافت سخت افزاری و بعد 8 تای بعدی تو بافر ارسال و 8 تای آخر تو بافر نرم افزاری ارسال ذخیره میشه........گه اشتباه کردم :redface:

          و درست اینه که :::: اطلاعات میره تو بافر سخت افزاری ارسال و از اونجا میره تو بافر دریافت.......حالا این زبون نفهم اگه 8 تا بایتش پر بشه و بایت جدیدی براش ارسال بشه یکی از "بیت" هاش رو از دست میشه و یه بیت جدید میگیره و یه بیت ااز یکی از ریجستر ها 1 میشه(یه فلگی 1 میشه).........درست گفتم انشاالله دیگه؟؟؟؟ یا بازم میخوای بگی رمان "ت ت" نوشتم :mrgreen:

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

          2) یا مثلا اگه میکرو دریافت کننده دید که اطلاعات دارن از بین میرن بیاد و یه پایه از میکرو ارسال کننده رو 1 کنه و این طور میکرو ارسال کننده متوجه این موضوع بشه؟؟؟؟؟/
          البته این روش شاید تو بحث ارتباط بیسیم بدرد نخوره
          اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

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

          دیدگاه

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