Просмотр исходного кода

esp_clk.h: add esp_clk_xtal_freq

This adds a user API for getting the XTAL frequency
Ivan Grokhotkov 7 лет назад
Родитель
Сommit
05a5410033
2 измененных файлов с 18 добавлено и 2 удалено
  1. 7 2
      components/esp32/clk.c
  2. 11 0
      components/esp32/include/esp_clk.h

+ 7 - 2
components/esp32/clk.c

@@ -109,12 +109,17 @@ void esp_clk_init(void)
 
 int IRAM_ATTR esp_clk_cpu_freq(void)
 {
-    return g_ticks_per_us_pro * 1000000;
+    return g_ticks_per_us_pro * MHZ;
 }
 
 int IRAM_ATTR esp_clk_apb_freq(void)
 {
-    return MIN(g_ticks_per_us_pro, 80) * 1000000;
+    return MIN(g_ticks_per_us_pro, 80) * MHZ;
+}
+
+int IRAM_ATTR esp_clk_xtal_freq(void)
+{
+    return rtc_clk_xtal_freq_get() * MHZ;
 }
 
 void IRAM_ATTR ets_update_cpu_frequency(uint32_t ticks_per_us)

+ 11 - 0
components/esp32/include/esp_clk.h

@@ -62,6 +62,17 @@ int esp_clk_cpu_freq(void);
  */
 int esp_clk_apb_freq(void);
 
+/**
+ * @brief Return frequency of the main XTAL
+ *
+ * Frequency of the main XTAL can be either auto-detected or set at compile
+ * time (see CONFIG_ESP32_XTAL_FREQ_SEL sdkconfig option). In both cases, this
+ * function returns the actual value at run time.
+ *
+ * @return XTAL frequency, in Hz
+ */
+int esp_clk_xtal_freq(void);
+
 
 /**
  * @brief Read value of RTC counter, converting it to microseconds