menu "High resolution timer (esp_timer)"

    config ESP_TIMER_PROFILING
        bool "Enable esp_timer profiling features"
        default n
        help
            If enabled, esp_timer_dump will dump information such as number of times the timer was started,
            number of times the timer has triggered, and the total time it took for the callback to run.
            This option has some effect on timer performance and the amount of memory used for timer
            storage, and should only be used for debugging/testing purposes.

    config ESP_TIME_FUNCS_USE_RTC_TIMER  # [refactor-todo] remove when timekeeping and persistence are separate
        bool

    config ESP_TIME_FUNCS_USE_ESP_TIMER  # [refactor-todo] remove when timekeeping and persistence are separate
        bool

    config ESP_TIME_FUNCS_USE_NONE  # [refactor-todo] remove when timekeeping and persistence are separate
        bool

    config ESP_TIMER_TASK_STACK_SIZE
        int "High-resolution timer task stack size"
        default 3584
        range 2048 65536
        help
            Configure the stack size of "timer_task" task. This task is used
            to dispatch callbacks of timers created using ets_timer and esp_timer
            APIs. If you are seing stack overflow errors in timer task, increase
            this value.

            Note that this is not the same as FreeRTOS timer task. To configure
            FreeRTOS timer task size, see "FreeRTOS timer task stack size" option
            in "FreeRTOS" menu.

    config ESP_TIMER_INTERRUPT_LEVEL
        int "Interrupt level"
        default 1
        range 1 3 if IDF_TARGET_ESP32
        range 1 1 if !IDF_TARGET_ESP32
        help
            It sets the interrupt level for esp_timer ISR in range 1..3.
            A higher level (3) helps to decrease the ISR esp_timer latency.

    config ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD
        bool "Support ISR dispatch method"
        default n
        help
            Allows using ESP_TIMER_ISR dispatch method (ESP_TIMER_TASK dispatch method is also avalible).
            - ESP_TIMER_TASK - Timer callbacks are dispatched from a high-priority esp_timer task.
            - ESP_TIMER_ISR - Timer callbacks are dispatched directly from the timer interrupt handler.
            The ISR dispatch can be used, in some cases, when a callback is very simple
            or need a lower-latency.

    config ESP_TIMER_IMPL_TG0_LAC
        bool
        default y
        depends on IDF_TARGET_ESP32

    config ESP_TIMER_IMPL_SYSTIMER
        bool
        default y
        depends on !IDF_TARGET_ESP32

endmenu # esp_timer
