37#ifndef DRIVER_TM1622_H
38#define DRIVER_TM1622_H
62#ifndef TM1622_COMMAND_DATA_DELAY
63 #define TM1622_COMMAND_DATA_DELAY 3
175#define DRIVER_TM1622_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
183#define DRIVER_TM1622_LINK_DATA_GPIO_INIT(HANDLE, FUC) (HANDLE)->data_gpio_init = FUC
191#define DRIVER_TM1622_LINK_DATA_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->data_gpio_deinit = FUC
199#define DRIVER_TM1622_LINK_DATA_GPIO_WRITE(HANDLE, FUC) (HANDLE)->data_gpio_write = FUC
207#define DRIVER_TM1622_LINK_DATA_GPIO_READ(HANDLE, FUC) (HANDLE)->data_gpio_read = FUC
215#define DRIVER_TM1622_LINK_WR_GPIO_INIT(HANDLE, FUC) (HANDLE)->wr_gpio_init = FUC
223#define DRIVER_TM1622_LINK_WR_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->wr_gpio_deinit = FUC
231#define DRIVER_TM1622_LINK_WR_GPIO_WRITE(HANDLE, FUC) (HANDLE)->wr_gpio_write = FUC
239#define DRIVER_TM1622_LINK_RD_GPIO_INIT(HANDLE, FUC) (HANDLE)->rd_gpio_init = FUC
247#define DRIVER_TM1622_LINK_RD_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->rd_gpio_deinit = FUC
255#define DRIVER_TM1622_LINK_RD_GPIO_WRITE(HANDLE, FUC) (HANDLE)->rd_gpio_write = FUC
263#define DRIVER_TM1622_LINK_CS_GPIO_INIT(HANDLE, FUC) (HANDLE)->cs_gpio_init = FUC
271#define DRIVER_TM1622_LINK_CS_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->cs_gpio_deinit = FUC
279#define DRIVER_TM1622_LINK_CS_GPIO_WRITE(HANDLE, FUC) (HANDLE)->cs_gpio_write = FUC
287#define DRIVER_TM1622_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
295#define DRIVER_TM1622_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
303#define DRIVER_TM1622_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
tm1622_clock_t
tm1622 clock enumeration definition
uint8_t tm1622_clear_timer(tm1622_handle_t *handle)
clear timer
uint8_t tm1622_set_lcd_bias(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable lcd bias
uint8_t tm1622_clear_segment(tm1622_handle_t *handle)
clear segment
uint8_t tm1622_write_segment(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len)
write segment
uint8_t tm1622_clear_watchdog(tm1622_handle_t *handle)
clear watchdog
tm1622_freq_t
tm1622 freq enumeration definition
uint8_t tm1622_set_tone_freq(tm1622_handle_t *handle, tm1622_tone_freq_t freq)
set tone freq
tm1622_tone_freq_t
tm1622 tone freq enumeration definition
tm1622_mode_t
tm1622 mode enumeration definition
uint8_t tm1622_set_watchdog(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable watchdog
struct tm1622_handle_s tm1622_handle_t
tm1622 handle structure definition
uint8_t tm1622_set_timer(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable timer
struct tm1622_info_s tm1622_info_t
tm1622 information structure definition
uint8_t tm1622_set_clock(tm1622_handle_t *handle, tm1622_clock_t clk)
set clock
tm1622_bool_t
tm1622 bool enumeration definition
uint8_t tm1622_deinit(tm1622_handle_t *handle)
close the chip
uint8_t tm1622_set_freq(tm1622_handle_t *handle, tm1622_freq_t freq)
set freq
uint8_t tm1622_init(tm1622_handle_t *handle)
initialize the chip
uint8_t tm1622_set_tone(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable tone
uint8_t tm1622_set_oscillator(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable oscillator
uint8_t tm1622_set_irq(tm1622_handle_t *handle, tm1622_bool_t enable)
enable or disable irq
uint8_t tm1622_set_mode(tm1622_handle_t *handle, tm1622_mode_t mode)
set mode
uint8_t tm1622_info(tm1622_info_t *info)
get chip's information
uint8_t tm1622_read_modify_write(tm1622_handle_t *handle, uint8_t addr, void(*and_or)(uint8_t addr, uint8_t lsb_msb, uint8_t input, uint8_t *output), uint8_t len)
read modify write
uint8_t tm1622_get_data(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len)
get data
uint8_t tm1622_set_command(tm1622_handle_t *handle, uint16_t cmd)
set command
uint8_t tm1622_set_data(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len)
set data
tm1622 handle structure definition
uint8_t(* data_gpio_write)(uint8_t level)
void(* delay_ms)(uint32_t ms)
uint8_t(* rd_gpio_write)(uint8_t level)
uint8_t(* wr_gpio_deinit)(void)
uint8_t(* cs_gpio_deinit)(void)
uint8_t(* data_gpio_init)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* data_gpio_read)(uint8_t *level)
uint8_t(* rd_gpio_deinit)(void)
void(* delay_us)(uint32_t us)
uint8_t(* wr_gpio_init)(void)
uint8_t(* cs_gpio_init)(void)
uint8_t(* data_gpio_deinit)(void)
uint8_t(* cs_gpio_write)(uint8_t level)
uint8_t(* wr_gpio_write)(uint8_t level)
uint8_t(* rd_gpio_init)(void)
tm1622 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v