32#include "../SensorCommBase.hpp"
34#if !defined(ARDUINO) && defined(ESP_PLATFORM)
37#include "freertos/FreeRTOS.h"
38#include "esp_idf_version.h"
41#include "rom/ets_sys.h"
42#include "driver/gpio.h"
47 void pinMode(uint8_t pin, uint8_t mode)
53 memset(&config, 0,
sizeof(config));
54 config.pin_bit_mask = 1ULL << pin;
57 config.mode = GPIO_MODE_INPUT;
60 config.mode = GPIO_MODE_OUTPUT;
63 config.pull_up_en = GPIO_PULLUP_DISABLE;
64 config.pull_down_en = GPIO_PULLDOWN_DISABLE;
65 config.intr_type = GPIO_INTR_DISABLE;
75 gpio_set_level((gpio_num_t )pin,
level);
84 return gpio_get_level((gpio_num_t)pin);
87 void delay(uint32_t ms)
89 ets_delay_us((ms % portTICK_PERIOD_MS) * 1000UL);
94 return (uint32_t) (esp_timer_get_time() / 1000LL);
99 return (uint32_t) esp_timer_get_time();
CustomMode modeCallback
Custom pinMode, nullptr if not set.
CustomWrite writeCallback
Custom digitalWrite, nullptr if not set.
CustomRead readCallback
Custom digitalRead, nullptr if not set.
Abstract hardware abstraction layer.
virtual uint8_t digitalRead(uint8_t pin)=0
Read the digital value from a pin.
virtual void pinMode(uint8_t pin, uint8_t mode)=0
Set the mode of a digital pin.
virtual void digitalWrite(uint8_t pin, uint8_t level)=0
Write a digital value to a pin.
virtual void delay(uint32_t ms)=0
Blocking delay for a given number of milliseconds.
virtual void delayMicroseconds(uint32_t us)=0
Blocking delay for a given number of microseconds.
virtual uint32_t millis()=0
Get the current system time in milliseconds.