#if !defined(_PDSP188x_H_) # define _PDSP188x_H_ # include # include # include # ifdef __AVR__ # include "config_avr.h" # else # define WR (1 << 0) # define FL (1 << 1) # define LATCH (1 << 2) # define RST (1 << 3) # define DATA (1 << 4) # define CLK (1 << 5) # define A0 (1 << 0) # define A1 (1 << 1) # define A2 (1 << 2) # define A3 (1 << 3) # define A4 (1 << 4) # endif # define PDSP188x_DATA_LINE_MASK 0x01 # define PDSP188x_ADDR_LINE_MASK 0x02 typedef struct { void (*init)(void); void (*reset)(void); void (*send_byte)(uint8_t byte); void (*write_char)(char c, uint8_t pos); void (*set_pins)(uint8_t set_mask, uint8_t pin, uint8_t state); } PDSP188x_DriverInterface_t; # define PDSP188x_BRIGHTNESS_LEVEL_100 0x00 # define PDSP188x_BRIGHTNESS_LEVEL_80 0x01 # define PDSP188x_BRIGHTNESS_LEVEL_53 0x02 # define PDSP188x_BRIGHTNESS_LEVEL_40 0x03 # define PDSP188x_BRIGHTNESS_LEVEL_27 0x04 # define PDSP188x_BRIGHTNESS_LEVEL_20 0x05 # define PDSP188x_BRIGHTNESS_LEVEL_13 0x06 # define PDSP188x_BRIGHTNESS_LEVEL_0 0x07 void PDSP188x_Init(const PDSP188x_DriverInterface_t *driver); void PDSP188x_SendChar(char c, uint8_t digit); void PDSP188x_SendStr(char *str); void PDSP188x_SendInt16(int16_t n); void PDSP188x_SetBrightness(uint8_t level); void PDSP188x_BlinkEn(uint8_t control); void PDSP188x_Clear(void); #endif