산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

감시 타이머란 무엇입니까?

구성품 및 소모품

Arduino UNO
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

마이크로 컨트롤러가 무한 루프에 빠져 있는 동안의 상황😖. 작업을 수행하는 동안 마이크로 컨트롤러가 멈추거나 끼이는 것과 같은 경우가 있습니까? 일반적인 문제 해결 방법은 무엇입니까? 리셋 버튼, 오른쪽 ? 😕 상시 버튼누름이 현실적으로 가능한가요? 그렇다면 이 작업을 수행하는 장치는 어떻습니까? 좋은 소리. 멋지다... !🙂.

네 ! 이제 우리는 이미 마이크로 컨트롤러 내부에 있는 그러한 장치에 대해 논의하고 있습니다. 감시 타이머입니다.

감시 타이머.

"감시 타이머( WDT )은 기본 프로그램이 주기적으로 서비스를 제공하지 않는 경우 시스템 재설정을 자동으로 생성하는 하드웨어 타이머입니다. 소프트웨어 또는 하드웨어 오류로 인해 중단된 내장형 기기를 자동으로 재설정하는 데 자주 사용됩니다. " (os.mbed.com/cookbook/WatchDog-Timer).

개에게 먹이를 주세요!

집에 강아지가 있는 경우. 정기적으로 그 개에게 먹이를 주어야 합니다. 하루도 먹이지 못하면 물린다! 이 감시 타이머가 작동하는 것처럼

우리는 계속해서 실행되는 프로그램의 주요 부분을 가지고 있습니다(loop ). 우리는 메인 프로그램의 전체 지연보다 큰 초기 값으로 워치독 타이머가 로드되도록 하고 있습니다. 매번 메인 프로그램이 이 타이머를 재설정합니다. 어떤 경우에도 기본 프로그램이 0으로 카운트다운되기 전에 타이머를 재설정하지 않으면 프로세서를 재설정하기 위해 인터럽트가 생성됩니다. 마찬가지로 워치독 타이머는 행 케이스로부터 마이크로 컨트롤러를 보호합니다.

이제 Arduino에서 watchdog 타이머를 사용해 보겠습니다.;)

Arduino에서 UNO는 ATMEGA328P 를 사용합니다. 마이크로 컨트롤러.

감시 타이머 라이브러리

#include  

Arduino에서 watchdog 타이머를 사용하려면 라이브러리가 필요합니다.

감시 타이머 활성화 :

wdt_enable(WDT 재설정 타이머);

감시 타이머를 활성화하려면 WDT RESET TIMER 15ms - 8s에서 다양합니다.

예:wdt_enable(WDT0_8S); --8초 동안 감시 타이머 활성화

감시 타이머 재설정

wdt_reset();

이 기능은 워치독 타이머를 재설정하는 데 사용됩니다. loop() 내부에서 사용하는 재설정 함수 . 프로그램이 더 큰 delay()를 사용하는 경우 워치독 타이머의 임계값 지연보다 큰 경우 해당 지연 전에 재설정 기능을 추가하십시오. 그렇지 않으면 해당 작업을 완료하기 전에 마이크로 컨트롤러를 재설정합니다.

감시 타이머 비활성화

wdt_disable();

예제 코드:

#include 
setup() 무효{
Serial.begin(9600);
Serial.println("설정 시작됨:");
// WDT를 활성화하기 전에 지연을 만듭니다.
// 이 지연은 모든 초기 작업을 완료하는 데 도움이 됩니다.
delay(2000);
wdt_enable(WDTO_4S);
}
void 루프(){
Serial.println("LOOP이 시작되었습니다! ");
for(int i=0; i<=5; i++){
Serial.print( "루프:");
Serial.print(i);
Serial.println();
delay(1000);
wdt_reset();
}
//MCU 정지를 위한 무한 루프
while(1){}
}

출력

의견 섹션에서 피드백, 질문, 토론을 촬영하세요.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 전체 코드
  • 전체 코드Arduino
    #include  무효 설정(){ Serial.begin(9600); Serial.println("설정이 시작되었습니다 :"); // WDT를 활성화하기 전에 지연을 만듭니다. // 이 지연은 모든 초기 작업을 완료하는 데 도움이 됩니다. delay(2000); wdt_enable(WDTO_4S);}void 루프(){ Serial.println("LOOP이 시작되었습니다! "); for(int i=0; i<=5; i++){ Serial.print("루프 :"); Serial.print(i); 직렬.println(); 지연(1000); wdt_reset(); } // MCU를 정지시키는 무한 루프 while(1){}}

    제조공정

    1. 인서트 성형이란 무엇입니까?
    2. 프로토타이핑이란 무엇입니까?
    3. 리니어 모터란?
    4. CNC 터닝이란 무엇입니까?
    5. 파운드리 란 무엇입니까?
    6. 다단 펌프 란 무엇입니까?
    7. 프레스 피더 란 무엇입니까?
    8. 잠수정 펌프 란 무엇입니까?
    9. 음료 로봇이란?
    10. 기계식 언론이란 무엇입니까?