فعال سازی حالت WATCHDOG و SLEEP
حالت Watchdog در زبان بیسیک BASIC
همانطور که در مباحث اول (معرفی فیوز بیت ها) اشاره شد , watchdog یک تایمر با فرکانس کار مستقل از فرکانس کار میکرو می باشد. دلیل این مستقل بودن فرکانس روشن است. این سیستم یک محافظ هنگ کردن میکروکنترلر است, پس باید از تمام اختیارات cpu جدا باشد تا بتواند میکرو را ریست کند. این تایمر توسط دستور زیر پیکر بندی می شود.
1 |
Config watchdog = x |
پس از گذشت زمان x میکرو ریست می شود.
نکته : X می تواند مقادیر 16 – 32 – 64 – 128 – 256 -512 – 1024 – 2048 میلی ثانیه باشد.
فعال سازی watchdog در زبان بیسیک BASIC
1 |
Start watchdog |
غیر فعال سازی watchdog در زبان بیسیک BASIC
1 |
Reset watchdog |
مثال :
1 2 3 4 5 6 7 8 |
Config watchdog = 512 Start watchdog Dim a as word Do If a < 65534 then incr a Loop End |
حالات sleep در زبان بیسیک BASIC
حالت sleep در حقیقت همان حالت بیکاری یک میکرو را برنامه نویسی می کند. این حالت برای کاهش مصرف انرژی بسیار موثر است. انواع مختلفی از این حالت های بیکاری وجود دارد که ما به ذکر دو نوع از پرکاربردترین آنها اکتفا می کنیم.
مد LDLE در زبان بیسیک BASIC
این مد به مد بیکاری معروف است و با این دستور میکرو وارد این حالت می شود و در صورتی که یکی از امکانات میکرو که در برنامه پیکربندی شده است, ورودی داشته و یا وقفه ای روی دهد میکرو از این حالت خارج می شود.
مد POWERDOWN در زبان بیسیک BASIC
این دستور یکی از مدهای میکرو را فعال می کند که تنها به وقفه های خارجی پاسخ داده و از حالت SLEEP بیرون می رود.
نکته : وقفه های خارجی باید پیکر بندی شده باشند.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$REGFILE = “ M8DEF.DAT” $crystal = 8000000 Config portc = output Enable interrupts Config int0 = rasing Enable int0 On int0 yas Do Powerdown Loop End Yas: Portc = 255 Return |
سایت خیلی خوبی دارید،بخصوص اینکه به زبان خیلی ساده و مثال های ساده آموزش دادید که خیلی بهتر جواب میده .
خیلی ممنون از لطف و حمایت شما.