اطلاعیه

Collapse
No announcement yet.

وقفه در تبادل سریال usart

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

    وقفه در تبادل سریال usart

    سلام خدمت دوستان
    راستش سوالی در رابطه با وقفه در تبادل سریال usart داشتم
    همونطور که میدونید وقتی تو کدویزارد میکرو رو در حالت گیرنده و با وقفه تنظیم میکنیم ، کد ویزارد خودش به طور خودکار متغیر rx_buffer رو برای ذخیره داده های ورودی بصورت آرایه ی
    char rx_buffer[RX_BUFFER_SIZE];
    تعریف میکنه که مثلا اگه بافر 8 بیتی باشه یه آرایه 8 عضوی و اگه 16 تایی باشه یه آرایه 16 تایی تعریف میشه
    حالا سوال من اینجاست که اگه بافر 8 بیتی باشه ، یه متغیر نوع char برای ذخیره کافیه ، پس چرا یه آرایه 8 تایی تعریف میشه؟
    و دیگه اینکه ما بخوایم این 8 بییت ورودی رو بخونیم و تو یه متغیر دیگه ذخیره کنیم از کدوم عضو این آرایه باید دیتا رو بخونیم یا اگه طور دیگه ای هستش لطفا توضیح بدین
    ممنون
    زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

    #2
    پاسخ : وقفه در تبادل سریال usart

    سلام دوست عزیز
    با تعریف یه char نمیشه اطلاعاتی که تکه تکه میاد رو یه جا ذخیره کرد. (نه که نمیشه! سخته)
    اما ما یه آرایه تعریف میکنم تا هر وقت دیتا اومد توی آخرین اندیس ذخیره بشه.
    مثلا× فرض من کلمه Hello Word بخواد بیاد
    چون توی 2 قسمت توسط سریال ارسال میشه راحت ترین راه ریختن او توی یه آرایه هست تا یه char.

    حالا اگه بخوای کاراکترا رو بخونی باید آرایه رو پردازش کنی.
    تشکر لازم نیست!

    دیدگاه


      #3
      پاسخ : وقفه در تبادل سریال usart

      اون بافر آرایه ای تشکیل یه صف حلقوی رو میده که اگه برنامه شما وقت نکرد داده های رسیده رو با تابع مثلا getchar بخونه ، داده ها از بین نرن و توی این آرایه ذخیره بشن تا اینکه برنامه شما اونها رو سر فرصت بخونه

      دیدگاه


        #4
        پاسخ : وقفه در تبادل سریال usart

        نوشته اصلی توسط mojalan
        اون بافر آرایه ای تشکیل یه صف حلقوی رو میده که اگه برنامه شما وقت نکرد داده های رسیده رو با تابع مثلا getchar بخونه ، داده ها از بین نرن و توی این آرایه ذخیره بشن تا اینکه برنامه شما اونها رو سر فرصت بخونه
        با اجازه جناب mojalan
        در تائید گفته های ایشون، شما فقط میبایست داده ها را با تابع get_char دریافت و با put_char ارسال کنید. شما در قید و بند کد مورد استفاده نباشید و فقط از این دو تابع استفاده کنید.
        بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
        موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
        نلسون ماندلا

        دیدگاه


          #5
          پاسخ : وقفه در تبادل سریال usart

          سلام و ممنون از همه دوستان
          فقط یه سوال دیگه دارم ومیخوام اگه میشه تو همین تاپیک ارسال کنم اونم اینه که در میشه ماژولهای hmt و hmr باود ریت رو مثل ماژولهای hmtr تغییر داد یا نه ؟
          بازم ممنون :nerd:
          زندگي آن چه که زيسته ايم نيست ، بلکه آن چيزي است که از گذشته به خاطر داريم ...گابريل گارسيا مارکز

          دیدگاه

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