'WATCHDOG'에 해당되는 글 2건

  1. 2011.10.28 [MSP430] WATCHDOG 사용하기
  2. 2011.07.28 AVR 와치독(Watchdog) 타이머 사용하기
[MSP430]/MSP430_EVM2011. 10. 28. 12:11

[MSP430] WATCHDOG 사용하기

[MSP430] WATCHDOG 사용하기


MSP430에서 Watchdog 사용하기위해 WDTCTL레지스터를 설정하면된다. 디폴트로 와치독은 동작하도록 되어 있고 내 코드에서는 SystemInit() 함수에서 와치독 사용하지 않도록 설정하고 있다.

void SystemInit(void)
{
  int result,i;
  WDTCTL = WDTPW +WDTHOLD;                  // Stop Watchdog Timer


WDTCTL레지스터를 제어하기 위해서는 Passwoard를 상위 레지스터가 기입해야 하는데 0x69를 입력하면 된다.
아래는 WDTCTL레지스터 이다.




와치독 사용하기 위해서는 WDTHOLD, WDTTMSEL 비트를 0으로 설정하면된다.
와치독 타이머 초기화는 WDTCNTL비트를 셋하면 초기화되어 와치독 리셋을 방지한다.



MSP430 Watchdog 드라이버 코드

#define WDT_ENABLE()                WDTCTL = WDTPW;
#define WDT_DISABLE()                WDTCTL = WDTPW+WDTHOLD;

#define WDT_RESET()                 WDTCTL = WDTPW+WDTCNTCL;



MSP430 Watchdog 테스트 예제 코드
void main(void)
{
 unsigned int cnt = 0;
 
    SystemInit();

 Led1Init();
 Led1On();
   
    for(cnt=0;cnt<3;cnt++)
    {
  Led1Toggle();
  Delay(50);   
    }
    Led1On();
   
   
    //와치독 사용
    WDT_ENABLE();
   
 while(1)
 {
        //와치독 리셋
        WDT_RESET();
 }
}
Posted by nexp

댓글을 달아 주세요

[AVR]/AVR_EVM2011. 7. 28. 19:04

AVR 와치독(Watchdog) 타이머 사용하기

AVR 와치독(Watchdog) 타이머 사용하기
MCU가 예외 상황으로 멈춰 있을때 리셋을 걸어 주어야 하는데.. 이때 Watchdog를 사용할 수 있다.
초기화는 WDTCR레지스터의 비트3을 설정해주면 와치독 타이머가 동작한다.
이때 주의 사항은 MCUSR레지스터의 WDRF비트를 0으로 설정해 주어야 한다.

와치독 타이머가 동작하면 설정한 주기 이내로 레지스터 값을 클리어 해 주어야 하는데
#asm("WDR")
로 가능하다.

WIN AVR을 이용하면 wdt.h에 기본 함수가 정의 되어 있어 간단히 사용할 수 있다.


AVR Watchdoc 타이머 사용 예제 소스코드
#include <avr/wdt.h>

#define  WDTO_15MS   0
#define  WDTO_30MS   1
#define  WDTO_60MS   2
#define  WDTO_120MS   3
#define  WDTO_250MS   4
#define  WDTO_500MS   5
#define  WDTO_1S   6
#define  WDTO_2S   7 


void main(void)
{
   :
   
    //Watchdog 초기화 - ATmega162에서는 MCUSR레지스터가 MCUCSR이다.

    MCUCSR &=~(1<<WDRF);
    wdt_enable(WDTO_500MS);


    while(1)
   {
      :  
      //주기적으로 와치독 클리어
      if(gTimerTickWD>400)
      {
          gTimerTickWD = 0;
          wdt_reset();
      }
   }
  }
Posted by nexp
TAG AVR, WATCHDOG

댓글을 달아 주세요