/* Arduino.h - Main include file for the Arduino SDK Copyright (c) 2005-2013 Arduino Team. All right reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef HAL_ESP32_HAL_H_ #define HAL_ESP32_HAL_H_ #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include #include #include #include "sdkconfig.h" #include "esp_system.h" #ifndef F_CPU #define F_CPU (CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ * 1000000U) #endif //forward declaration from freertos/portmacro.h void vPortYield(void); void yield(void); #define optimistic_yield(u) #define ESP_REG(addr) *((volatile uint32_t *)(addr)) #define NOP() asm volatile ("nop") #include "esp32-hal-log.h" #include "esp32-hal-matrix.h" #include "esp32-hal-uart.h" #include "esp32-hal-gpio.h" #include "esp32-hal-touch.h" #include "esp32-hal-dac.h" #include "esp32-hal-adc.h" #include "esp32-hal-spi.h" #include "esp32-hal-i2c.h" #include "esp32-hal-ledc.h" #include "esp32-hal-rmt.h" #include "esp32-hal-sigmadelta.h" #include "esp32-hal-timer.h" #include "esp32-hal-bt.h" #include "esp32-hal-psram.h" #ifndef BOARD_HAS_PSRAM #ifdef CONFIG_SPIRAM_SUPPORT #undef CONFIG_SPIRAM_SUPPORT #endif #endif //returns chip temperature in Celsius float temperatureRead(); #if CONFIG_AUTOSTART_ARDUINO //enable/disable WDT for Arduino's setup and loop functions void enableLoopWDT(); void disableLoopWDT(); #endif #ifndef CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1 //enable/disable WDT for the IDLE task on Core 1 void enableCore1WDT(); void disableCore1WDT(); #endif //function takes the following frequencies as valid values: // 240, 160, 80 <<< For all XTAL types // 40, 20, 13, 10, 8, 5, 4, 3, 2, 1 <<< For 40MHz XTAL // 26, 13, 5, 4, 3, 2, 1 <<< For 26MHz XTAL // 24, 12, 8, 6, 4, 3, 2, 1 <<< For 24MHz XTAL bool setCpuFrequency(uint32_t cpu_freq_mhz); uint32_t getCpuFrequency(); uint32_t getApbFrequency(); unsigned long micros(); unsigned long millis(); void delay(uint32_t); void delayMicroseconds(uint32_t us); #if !CONFIG_ESP32_PHY_AUTO_INIT void arduino_phy_init(); #endif #if !CONFIG_AUTOSTART_ARDUINO void initArduino(); #endif #ifdef __cplusplus } #endif #endif /* HAL_ESP32_HAL_H_ */