اطلاعیه

Collapse
No announcement yet.

سوال در برنامه نویسی iar

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

    سوال در برنامه نویسی iar

    سلام دوستان !
    این دستور در arm به چه معناست ؟
    AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
    بدون امضاء

    #2
    پاسخ : سوال در برنامه نویسی iar

    با سلام
    داره بیت WDDIS از رجیستر WDT_MR رو یک میکنه . فی الواقع داره تایمر نگهبان رو خاموش میکنه.

    دیدگاه


      #3
      پاسخ : سوال در برنامه نویسی iar

      ممنون آقا مجتبی :applause: :applause: :applause:
      AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
      AT91C_WDTC_WDDIS=(1<<15//
      این در واقع برنامه اصلی که نوشت شده
      چند تا سوال دارم ؟
      اول ساختاری که رجیستر تایمر نگهبان چیه ؟( رجیستر اش رو میگم )
      دوم : خط دوم برنامه نوشت 1 رو 15 بار به چپ شیفت بده تا بیت WDDIS رو یک کن که این خط غیر فعال شد
      چرا مستقیما همین خط رو ننوشتن
      چه کار کنم تازه کارم دیگه
      بدون امضاء

      دیدگاه


        #4
        پاسخ : سوال در برنامه نویسی iar

        اول ساختاری که رجیستر تایمر نگهبان چیه ؟( رجیستر اش رو میگم )
        ببخشید،منظورتون رو درست متوجه نشدم . ولی درکل پیشنهاد میکنم که برای کسب اطلاعات بیشتر در رابطه با تایمر نگهبان به دیتاشیت یا به کتاب های موجود مراجعه کنید.
        دوم : خط دوم برنامه نوشت 1 رو 15 بار به چپ شیفت بده تا بیت WDDIS رو یک کن که این خط غیر فعال شد چرا مستقیما همین خط رو ننوشتن
        خوب ، به نظر شما کدومش خواناتره و باهاش راحترید؟ از همون استفاده کنید.

        دیدگاه


          #5
          پاسخ : سوال در برنامه نویسی iar

          بازم از توجه شما ممنون ام !! :bye
          ولی سوال :read: تا جایی که من فهمیدم واچ داگ 3 تاد رجیستر داره
          WDT_CR و WDT_MR, WDT_SR
          خوب حالا این رجیستر دیگه چی ؟
          WDTC_WDMR ؟ اگه این همون رجیستر بالاست پس چرا اینجوری نوشته ؟

          و معنی این خط برنامه یعنی چی AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS
          توش که ننوشت عددی رو شیفت بده :read:
          بدون امضاء

          دیدگاه


            #6
            پاسخ : سوال در برنامه نویسی iar

            مجددا سلام ،

            WDTC_WDMR همون WDT_MR هست .

            و معنی این خط برنامه یعنی چی 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 یک بشن ) و این باعث خاموش شدن تایمر واچ داگ میشه .

            دیدگاه

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