ref_clock_impl_timergroup.c 920 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "test_utils.h"
  7. #include "unity_config.h"
  8. #include "driver/gptimer.h"
  9. static gptimer_handle_t ts_gptimer;
  10. void ref_clock_init(void)
  11. {
  12. gptimer_config_t timer_config = {
  13. .clk_src = GPTIMER_CLK_SRC_XTAL,
  14. .direction = GPTIMER_COUNT_UP,
  15. .resolution_hz = 1000000, // Resolution is configured to 1MHz
  16. };
  17. TEST_ESP_OK(gptimer_new_timer(&timer_config, &ts_gptimer));
  18. TEST_ESP_OK(gptimer_enable(ts_gptimer));
  19. TEST_ESP_OK(gptimer_start(ts_gptimer));
  20. }
  21. void ref_clock_deinit(void)
  22. {
  23. TEST_ESP_OK(gptimer_stop(ts_gptimer));
  24. TEST_ESP_OK(gptimer_disable(ts_gptimer));
  25. TEST_ESP_OK(gptimer_del_timer(ts_gptimer));
  26. ts_gptimer = NULL;
  27. }
  28. uint64_t ref_clock_get(void)
  29. {
  30. uint64_t ts;
  31. gptimer_get_raw_count(ts_gptimer, &ts);
  32. return ts;
  33. }