mirror of
https://github.com/sergeyyarkov/pdsp188x.git
synced 2026-10-11 02:18:52 +03:00
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
#if !defined(_PDSP188x_H_)
|
|
# define _PDSP188x_H_
|
|
|
|
# include <avr/io.h>
|
|
# include <stdlib.h>
|
|
# include <util/delay.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);
|
|
} 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 |