37#ifndef DRIVER_TM1640_H
38#define DRIVER_TM1640_H
62#ifndef TM1640_COMMAND_DATA_DELAY
63 #define TM1640_COMMAND_DATA_DELAY 1
168#define DRIVER_TM1640_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
176#define DRIVER_TM1640_LINK_SCLK_GPIO_INIT(HANDLE, FUC) (HANDLE)->sclk_gpio_init = FUC
184#define DRIVER_TM1640_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->sclk_gpio_deinit = FUC
192#define DRIVER_TM1640_LINK_SCLK_GPIO_WRITE(HANDLE, FUC) (HANDLE)->sclk_gpio_write = FUC
200#define DRIVER_TM1640_LINK_DIN_GPIO_INIT(HANDLE, FUC) (HANDLE)->din_gpio_init = FUC
208#define DRIVER_TM1640_LINK_DIN_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->din_gpio_deinit = FUC
216#define DRIVER_TM1640_LINK_DIN_GPIO_WRITE(HANDLE, FUC) (HANDLE)->din_gpio_write = FUC
224#define DRIVER_TM1640_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
232#define DRIVER_TM1640_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
240#define DRIVER_TM1640_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t tm1640_deinit(tm1640_handle_t *handle)
close the chip
uint8_t tm1640_info(tm1640_info_t *info)
get chip's information
tm1640_pulse_width_t
tm1640 pulse width enumeration definition
tm1640_number_t
tm1640 number enumeration definition
uint8_t tm1640_get_address_mode(tm1640_handle_t *handle, tm1640_address_mode_t *mode)
get address mode
uint8_t tm1640_get_test_mode(tm1640_handle_t *handle, tm1640_bool_t *enable)
get test mode status
tm1640_bool_t
tm1640 bool enumeration definition
uint8_t tm1640_init(tm1640_handle_t *handle)
initialize the chip
uint8_t tm1640_set_pulse_width(tm1640_handle_t *handle, tm1640_pulse_width_t width)
set pulse width
tm1640_address_mode_t
tm1640 address mode enumeration definition
uint8_t tm1640_clear_segment(tm1640_handle_t *handle)
clear segment
struct tm1640_handle_s tm1640_handle_t
tm1640 handle structure definition
uint8_t tm1640_write_segment(tm1640_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len)
write segment
uint8_t tm1640_set_test_mode(tm1640_handle_t *handle, tm1640_bool_t enable)
enable or disable test mode
uint8_t tm1640_get_pulse_width(tm1640_handle_t *handle, tm1640_pulse_width_t *width)
get pulse width
uint8_t tm1640_set_address_mode(tm1640_handle_t *handle, tm1640_address_mode_t mode)
set address mode
uint8_t tm1640_get_display(tm1640_handle_t *handle, tm1640_bool_t *enable)
get display status
struct tm1640_info_s tm1640_info_t
tm1640 information structure definition
uint8_t tm1640_set_display(tm1640_handle_t *handle, tm1640_bool_t enable)
enable or disable display
@ TM1640_PULSE_WIDTH_1_DIV_16
@ TM1640_PULSE_WIDTH_2_DIV_16
@ TM1640_PULSE_WIDTH_10_DIV_16
@ TM1640_PULSE_WIDTH_14_DIV_16
@ TM1640_PULSE_WIDTH_13_DIV_16
@ TM1640_PULSE_WIDTH_12_DIV_16
@ TM1640_PULSE_WIDTH_11_DIV_16
@ TM1640_PULSE_WIDTH_4_DIV_16
@ TM1640_ADDRESS_MODE_FIX
@ TM1640_ADDRESS_MODE_INC
uint8_t tm1640_set_reg(tm1640_handle_t *handle, uint8_t cmd, uint8_t *data, uint8_t len)
set the chip register
tm1640 handle structure definition
void(* delay_ms)(uint32_t ms)
uint8_t(* sclk_gpio_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* din_gpio_init)(void)
uint8_t(* din_gpio_deinit)(void)
void(* delay_us)(uint32_t us)
uint8_t(* din_gpio_write)(uint8_t level)
uint8_t(* sclk_gpio_init)(void)
uint8_t(* sclk_gpio_write)(uint8_t level)
tm1640 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v