watchdog timer 예제

감시 타이머는 많은 위험한 상황에서 시스템을 얻을 수 있습니다. 그러나 효과적이려면 감시 타이머를 전체 소프트웨어 설계 내에서 고려해야 합니다. 설계자는 소프트웨어에 어떤 종류의 문제가 발생할 수 있는지 알고 있어야 하며, 어떤 일이 발생할 경우 감시 타이머가 이를 감지하는지 확인해야 합니다. 주요 프로그램은 일반적으로 지속적으로 다양한 기능을 수행하는 루프를 가지고 있습니다. 감시 타이머는 기본 프로그램 루프를 통해 최악의 경우 시간 지연보다 큰 초기 값으로 로드됩니다. 메인 루프를 통과 할 때마다 코드는 감시 타이머를 재설정합니다 (때로는 “발로”또는 개를 “먹이”라고도함). 오류가 발생하고 주 프로그램이 0으로 카운트다운되기 전에 타이머를 다시 재설정하지 않으면 인터럽트하여 프로세서를 재설정합니다. 이러한 방식으로 사용되는 감시 타이머는 무인 arduino 프로그램의 오류를 감지하고 재설정시 정정 작업을 시도할 수 있습니다. 일반적으로 재설정 후 레지스터를 읽어 감시 타이머가 리셋을 생성했는지 또는 일반 재설정인지 확인할 수도 있습니다. 아두 이노에서이 레지스터는 워치 독 리셋 플래그 레지스터 (WDRF)라고합니다.

이 방법으로 우리는 아두 이노에서 워치독 타이머를 활용할 수 있습니다. 프로그램 코드에 오랜 시간 동안 외부 I/O 이벤트를 대기하는 다른 루프가 포함된 경우 학습한 내용을 요약할 수 있습니다. 일반적으로 “발로 차기”라고 하는 감시 타이머를 다시 시작하는 작업은 일반적으로 감시 타이머 제어 포트에 서면으로 수행됩니다. 또는, 통합 된 감시 타이머가 있는 마이크로 컨트롤러에서 감시 타이머는 때때로 특수 한 기계 언어 명령을 실행 하거나 레지스터에 특정 비트를 설정 하 여 걷어차. 이 것의 예는 일부 PIC 마이크로 컨트롤러의 명령 집합에서 발견 하는 CLRWDT (명확한 감시 타이머) 명령입니다. 당신은 감시 타이머가 재설정 한 후 동일한 RAM 내용을 얻을 것이다. WDT(감시 타이머)는 주 프로그램이 주기적으로 서비스를 중단하면 시스템 재설정을 자동으로 생성하는 하드웨어 타이머입니다. 소프트웨어 또는 하드웨어 오류로 인해 중단되는 임베디드 장치를 자동으로 재설정하는 데 사용되는 경우가 많습니다. 일부 시스템은 또한 제대로 작동 하는 컴퓨터로 참조할 수 있습니다 (COP) 타이머. MBED 프로세서를 포함한 많은 마이크로 컨트롤러에는 감시 타이머 하드웨어가 있습니다. 주요 프로그램은 일반적으로 지속적으로 다양한 기능을 수행하는 루프를 가지고 있습니다. 감시 타이머는 기본 프로그램 루프를 통해 최악의 경우 시간 지연보다 큰 초기 값으로 로드됩니다.

메인 루프를 통과 할 때마다 코드는 감시 타이머를 재설정합니다 (때로는 “발로”또는 개를 “먹이”라고도함).

© 2020 A MarketPress.com Theme