اطلاعیه

Collapse
No announcement yet.

watchdog و دستور delay

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

    watchdog و دستور delay

    با سلام
    میخواستم ببینم که دستور delay در codvision باعث reset شدن watchdog میشه ؟
    یعنی اگه در برنامه watchdog فعال باشد و زمان آن یک ثانیه در نظر گرفته شده باشد و هر 500 میلی ثانیه یکبار در برنامه از دستور delay استفاده کنم میکرو به وسیله watchdog دیگه reset نمیشه؟

    #2
    پاسخ : watchdog و دستور delay

    با درود . . .
    اگه بالا تر از مقدار واچ داگ باشه آره.
    واچ داگ همیشه مراقبه تا اگه به موقع تو سری نخورد( به عبارتی ریست نشد) پاچه مدار رو بگیره.
    شما میای براش تعیین میکنی که هر 1024 یا 2048 میلی ثانیه سرریز شه. قبل از سرریزی اگه شما به دادش برسید و ریستش کنید که هیچی ولی اگه از اون زمان تعیین شده بگذره حالا به هر دلیلی(وقفه-تاخیر-زیر برنامه و...) واچداگ میکرو رو ریست میکنه.
    راحت ترین کاری که میتونی بکنی اینه که یکی از تایمرهات که داره کار میکنه و مثلا براش تعریف کردی که 100 میلی ثانیه کار کنه رو توی زیر روال وقفه اش دستور ریست شدن واچ داگ رو بنویسی. واچ داگ رو هم مثلا روی زمانی بالاتر از اون سرریز تعریف کنی مثلا 256 . لازم به ذکره شما در هر جای برنامه میتونید واچ داگ رو دوباره برنامه ریزی کنید.
    مثلا در ابتدا گفته بودید که 1024 باشه. خیلی راحت در هر جا بخواهید میتونید بکنیدش 2048 یا 256 یا... و یا کلا از کار بندازیدش(دستور استوپ)
    این دست برنامه نویس ها رو برای کارای حساس باز میکنه.

    اگه مشکلی بود در خدمتم ...
    باسپاس . . .
    درد من تنهایی نیست؛ بلكه مرگ ملتی است كه گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حكمت خداوند می‏ نامند! "گاندی"

    به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
    بدرود . . .

    دیدگاه


      #3
      پاسخ : watchdog و دستور delay

      تابع delay_ms هر یک میلی ثانیه واچ داگ رو ریست میکنه (فکر میکنم اینو تو هلپش هم نوشته) ولی تابع delay_us اینکارو نمیکنه. در ضمن این اتفاقا تو کامپایلر کدویژن میفته
      The functions are:
      void delay_us(unsigned int n)
      generates a delay of n mseconds. n must be a constant expression.
      void delay_ms(unsigned int n)
      generates a delay of n milliseconds.
      This function automatically resets the wtachdog timer every 1ms by generating the wdr instruction

      دیدگاه

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