29 #ifndef _LCD_HAL_IO_H_ 30 #define _LCD_HAL_IO_H_ 45 #include "arduino/io.h" 47 #include "arduino/arduino_spi.h" 48 #include "arduino/arduino_wire.h" 49 #include "avr/avr_spi.h" 50 #include "avr/avr_twi.h" 53 #include "esp/esp32_i2c.h" 54 #include "esp/esp32_spi.h" 56 #elif defined(__AVR__) && !defined(ARDUINO) 59 #include "avr/avr_spi.h" 60 #include "avr/avr_twi.h" 64 #elif defined(__XTENSA__) && !defined(ARDUINO) 67 #include "esp/esp32_i2c.h" 68 #include "esp/esp32_spi.h" 70 #elif defined(STM32F1) || defined(STM32F2) || defined(STM32F4) 72 #elif defined(__linux__) 75 #include "linux/linux_i2c.h" 76 #include "linux/linux_spi.h" 77 #include "linux/sdl_i2c.h" 78 #include "linux/sdl_spi.h" 80 #elif defined(__MINGW32__) 83 #include "linux/sdl_i2c.h" 84 #include "linux/sdl_spi.h" 87 #warning "Platform is not supported. Use template to add support" 92 #ifndef LCDINT_TYPES_DEFINED 94 #define LCDINT_TYPES_DEFINED 102 #define ssd1306_swap_data(a, b, type) { type t = a; a = b; b = t; } 108 #ifndef DOXYGEN_SHOULD_SKIP_THIS 109 #define ARDUINO_COMPAT 115 #define LCD_HIGH HIGH 116 #define LCD_GPIO_INPUT INPUT 117 #define LCD_GPIO_OUTPUT OUTPUT 118 #define LCD_PROGMEM PROGMEM 120 #define lcd_gpioRead digitalRead 121 #define lcd_gpioWrite digitalWrite 122 #define lcd_gpioMode pinMode 123 #define lcd_adcRead analogRead 125 #define lcd_pgmReadByte pgm_read_byte 126 #define lcd_eepromReadWord eeprom_read_word 127 #define lcd_eepromWriteWord eeprom_write_word 129 #define lcd_millis millis 130 #define lcd_micros micros 131 #define lcd_delay delay 132 #define lcd_delayUs delayMicroseconds 134 #define lcd_random random 135 #define lcd_randomSeed randomSeed 144 #define LCD_GPIO_INPUT 0 146 #define LCD_GPIO_OUTPUT 1 150 #define LCD_PROGMEM PROGMEM 264 #ifdef ARDUINO_COMPAT 268 #define HIGH LCD_HIGH 270 #define INPUT LCD_GPIO_INPUT 272 #define OUTPUT LCD_GPIO_OUTPUT 275 #define PROGMEM LCD_PROGMEM 279 #define digitalRead lcd_gpioRead 281 #define digitalWrite lcd_gpioWrite 283 #define pinMode lcd_gpioMode 285 #define analogRead lcd_adcRead 287 #if !defined(__AVR__) 289 #define pgm_read_byte lcd_pgmReadByte 291 #define eeprom_read_word lcd_eepromReadWord 293 #define eeprom_write_word lcd_eepromWriteWord 297 #define millis lcd_millis 299 #define micros lcd_micros 301 #define delay lcd_delay 303 #define delayMicroseconds lcd_delayUs 306 #define random lcd_random 308 #define randomSeed lcd_randomSeed 322 #if defined(CONFIG_ARDUINO_I2C_AVAILABLE) && defined(CONFIG_ARDUINO_I2C_ENABLE) 334 :
ArduinoI2c(config.scl, config.sda, config.addr) {}
337 #elif defined(CONFIG_TWI_I2C_AVAILABLE) && defined(CONFIG_TWI_I2C_ENABLE) 353 #elif defined(CONFIG_LINUX_I2C_AVAILABLE) && defined(CONFIG_LINUX_I2C_ENABLE) 355 #if defined(SDL_EMULATION) 367 : SdlI2c(config.
scl, config.
sda, config.
addr) {}
385 #elif defined(CONFIG_ESP32_I2C_AVAILABLE) && defined(CONFIG_ESP32_I2C_ENABLE) 401 #elif defined(CONFIG_SOFTWARE_I2C_AVAILABLE) && defined(CONFIG_SOFTWARE_I2C_ENABLE) 419 #error "Platform not supported" 427 #if defined(CONFIG_AVR_SPI_AVAILABLE) && defined(CONFIG_AVR_SPI_ENABLE) 440 :
AvrSpi( config.cs, config.dc, config.frequency ) {}
443 #elif defined(CONFIG_ARDUINO_SPI_AVAILABLE) && defined(CONFIG_ARDUINO_SPI_ENABLE) 459 #elif defined(CONFIG_LINUX_SPI_AVAILABLE) && defined(CONFIG_LINUX_SPI_ENABLE) 461 #if defined(SDL_EMULATION) 473 : SdlSpi(config.
dc) {}
491 #elif defined(CONFIG_ESP32_SPI_AVAILABLE) && defined(CONFIG_ESP32_SPI_ENABLE) 506 #elif defined(CONFIG_USI_SPI_AVAILABLE) && defined(CONFIG_USI_SPI_ENABLE) 524 #error "Platform not supported" 531 #endif // end ifdef __cplusplus
void lcd_randomSeed(int seed)
int lcd_gpioRead(int pin)
void attachInterrupt(int pin, void(*interrupt)(), int level)
void ssd1306_platform_spiInit(int8_t busId, int8_t cesPin, int8_t dcPin)
Initializes spi interface for platform being used.
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 ssd1306_platform_i2cInit(int8_t busId, uint8_t addr, ssd1306_platform_i2cConfig_t *cfg)
Initializes i2c interface for platform being used.
void lcd_delayUs(unsigned long us)
uint32_t lcd_millis(void)
uint16_t lcd_eepromReadWord(const void *ptr)
void lcd_delay(unsigned long ms)