pdsp188x/pdsp188x.h
2026-08-14 19:59:53 +03:00

57 lines
1.4 KiB
C

#if !defined(_PDSP188x_H_)
# define _PDSP188x_H_
# include <stdlib.h>
# 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);
void (*delay_ms)(uint8_t ms);
void (*delay_us)(uint8_t us);
} 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