ممنون آقا مجتبی :applause: :applause: :applause:
AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
AT91C_WDTC_WDDIS=(1<<15//
این در واقع برنامه اصلی که نوشت شده
چند تا سوال دارم ؟
اول ساختاری که رجیستر تایمر نگهبان چیه ؟( رجیستر اش رو میگم )
دوم : خط دوم برنامه نوشت 1 رو 15 بار به چپ شیفت بده تا بیت WDDIS رو یک کن که این خط غیر فعال شد
چرا مستقیما همین خط رو ننوشتن
چه کار کنم تازه کارم دیگه
اول ساختاری که رجیستر تایمر نگهبان چیه ؟( رجیستر اش رو میگم )
ببخشید،منظورتون رو درست متوجه نشدم . ولی درکل پیشنهاد میکنم که برای کسب اطلاعات بیشتر در رابطه با تایمر نگهبان به دیتاشیت یا به کتاب های موجود مراجعه کنید.
دوم : خط دوم برنامه نوشت 1 رو 15 بار به چپ شیفت بده تا بیت WDDIS رو یک کن که این خط غیر فعال شد چرا مستقیما همین خط رو ننوشتن
خوب ، به نظر شما کدومش خواناتره و باهاش راحترید؟ از همون استفاده کنید.
بازم از توجه شما ممنون ام !! :bye
ولی سوال :read: تا جایی که من فهمیدم واچ داگ 3 تاد رجیستر داره
WDT_CR و WDT_MR, WDT_SR
خوب حالا این رجیستر دیگه چی ؟
WDTC_WDMR ؟ اگه این همون رجیستر بالاست پس چرا اینجوری نوشته ؟
و معنی این خط برنامه یعنی چی AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
توش که ننوشت عددی رو شیفت بده :read:
و معنی این خط برنامه یعنی چی AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
توش که ننوشت عددی رو شیفت بده
داره AT91C_WDTC_WDDIS رو منتسب به عضو WDTC_WDMR در ساختمان داده ای به اسم AT91C_BASE_WDTC که به صورت اشاره گر تعریف شده ، می کنه .
از طرفی AT91C_WDTC_WDDIS معادل همون (15>>1) هست .
پس به این ترتیب با شیفت دادن یه یک از سمت چپ (LSB) به اندازه 15 تا بیت به سمت راست (MSB) بیت 15 ام از رجیستر WDT_MR یک میشه (میتونید چند تا یک رو همزمان با هم شیفت بدید مثلا (15<<3) یعنی دو تا یک کنار هم رو از LSB به اندازه 15 بیت با هم به سمت MSB شیفت میده و باعث میشه بیت 15 و 16 یک بشن ) و این باعث خاموش شدن تایمر واچ داگ میشه .
دیدگاه