RTOS 시간 관리 - 소프트 타이머 esp_timer 사용

RTOS 시간 관리 - 소프트 타이머 esp_timer 사용

개요

소프트 타이머 xTimer는 RTOS에서 제공되지만 이 소프트웨어 타이머에는 몇 가지 단점이 있습니다.

1) 최대 해상도(최소 타이밍 정확도)는 RTOS의 SysTick과 동일합니다.

2) 타이머 콜백 함수는 우선 순위가 낮은 태스크 TimerTask에서 호출됩니다.

esp_timer 는 ESP-IDF로 구현된 소프트웨어 타이머로 마이크로초 수준의 시간 분해능과 64비트의 최대 타이밍 값을 제공합니다.

소프트웨어 타이머 esp_timer의 작동 메커니즘

esp_timer는 앞서 언급한 RTOS에서 제공하는 xTimer soft timer와 유사하며 one-shot 및 periodic timer 기능을 제공합니다. 차이점은 xTimer의 콜백은 작업에서만 호출할 수 있지만 esp_timer의 콜백은 작업 또는 인터럽트 ISR에서 호출할 수 있다는 것입니다.

1) esp_timer의 콜백 함수는 기본적으로 우선순위가 높은(기본 우선순위는 22) esp_timer 작업에서 예약됩니다. 모든 콜백은 동일한 작업 내에서 실행되므로 콜백 자체에서 가능한 한 적은 작업을 수행하고 대기열을 사용하여 우선 순위가 낮은 작업으로 이벤트를 보내는 것이 좋습니다 . esp_timer 작업보다 우선순위가 높은 다른 작업이 실행 중인 경우 타이머 콜백 함수는 esp_timer 작업이 실행될 기회가 있을 때까지 지연됩니다.

2) 구성 메뉴에서 다음 옵션을 선택하면 esp_timer의 콜백 기능이 인터럽트로 실행됩니다.

추천

출처blog.csdn.net/wangyx1234/article/details/128377601