29 #ifndef _LCD_HAL_IO_H_ 30 #define _LCD_HAL_IO_H_ 44 #if defined(ARDUINO) || defined(PARTICLE_USER_MODULE) 45 #include "arduino/io.h" 48 #include "arduino/arduino_spi.h" 49 #include "arduino/arduino_wire.h" 50 #include "avr/spi_avr.h" 51 #include "avr/i2c_twi.h" 54 #include "esp/esp32_i2c.h" 55 #include "esp/esp32_spi.h" 56 #include "esp/esp8266_i2c.h" 57 #include "esp/esp8266_spi.h" 60 #elif defined(__AVR__) && !defined(ARDUINO) 63 #include "avr/spi_avr.h" 64 #include "avr/i2c_twi.h" 68 #elif defined(__XTENSA__) && !defined(ARDUINO) 71 #include "esp/esp32_i2c.h" 72 #include "esp/esp32_spi.h" 73 #include "esp/esp8266_i2c.h" 74 #include "esp/esp8266_spi.h" 76 #elif defined(STM32F1) || defined(STM32F2) || defined(STM32F4) 78 #elif defined(__linux__) || defined(__APPLE__) 81 #include "linux/linux_i2c.h" 82 #include "linux/linux_spi.h" 83 #include "linux/sdl_i2c.h" 84 #include "linux/sdl_spi.h" 86 #elif defined(__MINGW32__) 89 #include "linux/sdl_i2c.h" 90 #include "linux/sdl_spi.h" 92 #elif defined(PICO_BOARD) 95 #include "pico/pico_spi.h" 96 #include "pico/pico_i2c.h" 99 #warning "Platform is not supported. Use template to add support" 104 #ifndef LCDINT_TYPES_DEFINED 106 #define LCDINT_TYPES_DEFINED 114 #define ssd1306_swap_data(a, b, type) \ 125 #ifndef DOXYGEN_SHOULD_SKIP_THIS 126 #define ARDUINO_COMPAT 132 #define LCD_HIGH HIGH 133 #define LCD_GPIO_INPUT INPUT 134 #define LCD_GPIO_OUTPUT OUTPUT 135 #define LCD_GPIO_INPUT_PULLUP INPUT_PULLUP 136 #define LCD_GPIO_INPUT_PULLDOWN INPUT_PULLDOWN 137 #define LCD_PROGMEM PROGMEM 139 #define lcd_gpioRead digitalRead 140 #define lcd_gpioMode pinMode 141 #define lcd_adcRead analogRead 148 #ifndef DOXYGEN_SHOULD_SKIP_THIS 149 void lcd_registerGpioEvent(
int pin,
void (*on_pin_change)(
void *),
void *arg);
150 void lcd_unregisterGpioEvent(
int pin);
159 #define lcd_pgmReadByte pgm_read_byte 160 #define lcd_eepromReadWord eeprom_read_word 161 #define lcd_eepromWriteWord eeprom_write_word 163 #define lcd_millis millis 164 #define lcd_micros micros 165 #define lcd_delay delay 166 #define lcd_delayUs delayMicroseconds 167 #define lcd_attachInterrupt attachInterrupt 169 #define lcd_random random 170 #define lcd_randomSeed randomSeed 179 #define LCD_GPIO_INPUT 0 181 #define LCD_GPIO_OUTPUT 1 183 #define LCD_GPIO_INPUT_PULLUP 2 185 #define LCD_GPIO_INPUT_PULLDOWN 3 189 #define LCD_PROGMEM PROGMEM 218 #ifndef DOXYGEN_SHOULD_SKIP_THIS 219 void lcd_registerGpioEvent(
int pin,
void (*on_pin_change)(
void *),
void *arg);
220 void lcd_unregisterGpioEvent(
int pin);
309 #ifdef ARDUINO_COMPAT 313 #define HIGH LCD_HIGH 315 #define INPUT LCD_GPIO_INPUT 317 #define OUTPUT LCD_GPIO_OUTPUT 319 #define INPUT_PULLUP LCD_GPIO_INPUT_PULLUP 321 #define INPUT_PULLDOWN LCD_GPIO_INPUT_PULLDOWN 324 #define PROGMEM LCD_PROGMEM 328 #define digitalRead lcd_gpioRead 330 #define digitalWrite lcd_gpioWrite 332 #define pinMode lcd_gpioMode 334 #define analogRead lcd_adcRead 336 #if !defined(__AVR__) 338 #define pgm_read_byte lcd_pgmReadByte 340 #define eeprom_read_word lcd_eepromReadWord 342 #define eeprom_write_word lcd_eepromWriteWord 346 #define millis lcd_millis 348 #define micros lcd_micros 350 #define delay lcd_delay 352 #define delayMicroseconds lcd_delayUs 355 #define random lcd_random 357 #define randomSeed lcd_randomSeed 369 #if defined(CONFIG_ARDUINO_I2C_AVAILABLE) && defined(CONFIG_ARDUINO_I2C_ENABLE) 381 :
ArduinoI2c(config.scl, config.sda, config.addr)
386 #elif defined(CONFIG_TWI_I2C_AVAILABLE) && defined(CONFIG_TWI_I2C_ENABLE) 404 #elif defined(CONFIG_LINUX_I2C_AVAILABLE) && defined(CONFIG_LINUX_I2C_ENABLE) 406 #if defined(SDL_EMULATION) 440 #elif defined(CONFIG_ESP32_I2C_AVAILABLE) && defined(CONFIG_ESP32_I2C_ENABLE) 458 #elif defined(CONFIG_ESP8266_I2C_AVAILABLE) && defined(CONFIG_ESP8266_I2C_ENABLE) 476 #elif defined(CONFIG_SOFTWARE_I2C_AVAILABLE) && defined(CONFIG_SOFTWARE_I2C_ENABLE) 494 #elif defined(PICO_BOARD) 507 : PicoI2c(config.
scl, config.
sda, config.
addr)
514 #error "Platform not supported" 522 #if defined(CONFIG_AVR_SPI_AVAILABLE) && defined(CONFIG_AVR_SPI_ENABLE) 535 :
AvrSpi(config.cs, config.dc, config.frequency)
540 #elif defined(CONFIG_ARDUINO_SPI_AVAILABLE) && defined(CONFIG_ARDUINO_SPI_ENABLE) 558 #elif defined(CONFIG_LINUX_SPI_AVAILABLE) && defined(CONFIG_LINUX_SPI_ENABLE) 560 #if defined(SDL_EMULATION) 594 #elif defined(CONFIG_ESP32_SPI_AVAILABLE) && defined(CONFIG_ESP32_SPI_ENABLE) 611 #elif defined(CONFIG_ESP8266_SPI_AVAILABLE) && defined(CONFIG_ESP8266_SPI_ENABLE) 628 #elif defined(CONFIG_USI_SPI_AVAILABLE) && defined(CONFIG_USI_SPI_ENABLE) 646 #elif defined(PICO_BOARD) 666 #error "Platform not supported"
void lcd_randomSeed(int seed)
int lcd_gpioRead(int pin)
void lcd_attachInterrupt(int pin, void(*interrupt)(), int level)
void lcd_gpioWrite(int pin, int level)
uint32_t lcd_micros(void)
uint8_t lcd_pgmReadByte(const void *ptr)
void lcd_eepromWriteWord(const void *ptr, uint16_t val)
void lcd_gpioMode(int pin, int mode)
void lcd_delayUs(unsigned long us)
uint32_t lcd_millis(void)
uint16_t lcd_eepromReadWord(const void *ptr)
void lcd_delay(unsigned long ms)