اطلاعیه

Collapse
No announcement yet.

یه سوال در مورد ارتباط usart و دستور Waitkey

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

    یه سوال در مورد ارتباط usart و دستور Waitkey

    سلام بر همه اساتید
    من با ستفاده از usart به یک دستگاه دیگه وصل میشم
    یک سری دستورات رو میفرستم
    حالا جواب رو با استفاده از Waitkey میخونم بعضی وقتها اگه دستگاه دستور من بهش نرسه ویا به هر علتی جواب نده
    برنامه من روی Waitkey می مونه و منتظر میشه همین جوی وای میسه که جواب بگیره به نظر شما من چی کار کنم
    و یه مورد دیگه از اینتراپت هم نمی تونم استفاده کنم
    چون باید به ازای هر دستوری که میدم بدونم چه خروجی میده
    معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

    #2
    پاسخ : یه سوال در مورد ارتباط usart و دستور Waitkey

    اولا میتونی از وقفه استفاده کنی. فقط راحتتره از یک ماشین وضعیت استفاده کنی. ثانیا این جور مواقع از تایمر برای timeout کردن استفاده میکنن. به عنوان مثال میتونی یه فلوچارت بکشی که نهایت بلوکهاش به ارسال و دریافت یک بایت یا یک فریم روی uart ختم بشه. هر جا منتظر اطلاعات هستی یک تایمر نرم افزاری رو استارت کنی تا در صورت سرریز شدن ماشین وضعیتت رو به حالت اولیه برگردونه. و در ابتدای روال وقفه دریافت اطلاعات از سریال این تایمر رو ریست کن.

    دیدگاه


      #3
      پاسخ : یه سوال در مورد ارتباط usart و دستور Waitkey

      سلام
      در میکرو کنترلر ها تایمری به نام سگ نگهبان (watchdog) وجود داره که این تایمر پس از سپری شدن زمان معینی میکرو را ری ست می کنه
      این زمان معین را می تونی تو تنضیمات این تایمر انتخاب کنی
      در میان دستورات برنامت باید با دستور اسمبلی WDR این تایمر را ری ست کنی تا میکروت ری ست نشه
      اگه به هر دلیلی میکرو جایی از برنامت گیر کنه دستور ریست شدن تایمر سگ نگهبان اجرا نمی شه و در نتیجه میکرو ری ست می شه
      فقط آخرین نکته این که برای از دس نرفتن اطلاعاتت همیشه از آخرین داده هات یه سری تو eeprom ذخیره کن
      امید وارم منظور تو درست فهمیده باشم و مشکلت حل شه

      دیدگاه

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