#ifndef __LCD #define __LCD #define DISPLAY_RS ((uint16_t) (0x1U << 7)) #define DISPLAY_RW ((uint16_t) (0x1U << 10)) #define DISPLAY_ENA ((uint16_t) (0x1U << 11)) #define DISPLAY_POLL_UNTIL_READY do { while (display_read_status() & 0x80) {} } while (0) #define DISPLAY_SET_INCREMENT do { display_write_instruction_byte(0x06); } while (0) #define DISPLAY_SET_DECREMENT do { display_write_instruction_byte(0x04); } while (0) #define DISPLAY_SET_CURSOR(line, position) do { display_write_instruction_byte(0x80 | (line << 6) | position); } while (0) #define DISPLAY_CLEAR do { display_write_instruction_byte(0x01); } while (0) void display_init(void); uint8_t display_read_status(void); void display_write_instruction_byte(uint8_t code); void display_write_data_byte(uint8_t code); void display_write_data_seq(char *codes); #endif