اطلاعیه

Collapse
No announcement yet.

تشخیص قطعی برق یا ریست شدن میکرو

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

    تشخیص قطعی برق یا ریست شدن میکرو

    با سلام به همه دوستان
    در ابتدا لازم هست برای وقتی که می گذارید تشکر کنم

    چطور می توان تفاوت بین قطع برق و ریست شدن میکرو رو تشخیص داد ؟؟؟

    من wd میکرو رو فعال کردم که در مواردی میکرو رو ریست کنه
    برخی موارد هم ممکنه برق قطع بشه که وقتی برق وصل شد باید یک سری کار انجام بشه
    حالا وقتی میکرو ریست میشه کارهایی که موقع قطع برق صورت میگیره انجام مشه

    میکرو atmega32 هست و از کامپایلر کدویژن استفاده می کنم

    با تشکر

    #2
    پاسخ : تشخیص قطعی برق یا ریست شدن میکرو

    داخل کدویزارد یک گزینه به نام check reset source این گزینه رو فعال کنید

    دیدگاه


      #3
      پاسخ : تشخیص قطعی برق یا ریست شدن میکرو

      تشکر بابت پاسختون

      ممکنه بیشتر توضیح بدید
      این گزینه که فعال باشه چه اتفاقی می افته ؟؟؟
      توی برنامه چطور میشه تشخیص داد ؟؟
      کلا چطور میشه ازش استفاده کرد ؟

      دیدگاه


        #4
        پاسخ : تشخیص قطعی برق یا ریست شدن میکرو

        شما وقتی این گزینه رو فعال می کنید این نمونهcode رو به شما می ده
        کد:
        void main(void)
        {
        // Declare your local variables here
        
        // Reset Source checking
        if (MCUCSR & (1<<PORF))
          {
          // Power-on Reset
          MCUCSR&=~((1<<JTRF) | (1<<WDRF) | (1<<BORF) | (1<<EXTRF) | (1<<PORF));
          // Place your code here
        
          }
        else if (MCUCSR & (1<<EXTRF))
          {
          // External Reset
          MCUCSR&=~((1<<JTRF) | (1<<WDRF) | (1<<BORF) | (1<<EXTRF) | (1<<PORF));
          // Place your code here
        
          }
        else if (MCUCSR & (1<<BORF))
          {
          // Brown-Out Reset
          MCUCSR&=~((1<<JTRF) | (1<<WDRF) | (1<<BORF) | (1<<EXTRF) | (1<<PORF));
          // Place your code here
        
          }
        else if (MCUCSR & (1<<WDRF))
          {
          // Watchdog Reset
          MCUCSR&=~((1<<JTRF) | (1<<WDRF) | (1<<BORF) | (1<<EXTRF) | (1<<PORF));
          // Place your code here
        
          }
        else if (MCUCSR & (1<<JTRF))
          {
          // JTAG Reset
          MCUCSR&=~((1<<JTRF) | (1<<WDRF) | (1<<BORF) | (1<<EXTRF) | (1<<PORF));
          // Place your code here
        
          }
        
        
        while (1)
           {
           // Place your code here
        
           }
        }

        دیدگاه

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