LibDriver TM1640
Loading...
Searching...
No Matches
driver_tm1640.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_TM1640_H
38#define DRIVER_TM1640_H
39
40#include <stdio.h>
41#include <stdint.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
62#ifndef TM1640_COMMAND_DATA_DELAY
63 #define TM1640_COMMAND_DATA_DELAY 1
64#endif
65
74
78typedef enum
79{
83
98
115
119typedef struct tm1640_handle_s
120{
121 uint8_t (*sclk_gpio_init)(void);
122 uint8_t (*sclk_gpio_deinit)(void);
123 uint8_t (*sclk_gpio_write)(uint8_t level);
124 uint8_t (*din_gpio_init)(void);
125 uint8_t (*din_gpio_deinit)(void);
126 uint8_t (*din_gpio_write)(uint8_t level);
127 void (*delay_us)(uint32_t us);
128 void (*delay_ms)(uint32_t ms);
129 void (*debug_print)(const char *const fmt, ...);
130 uint8_t inited;
131 uint8_t display_conf;
132 uint8_t data_conf;
134
150
154
161
168#define DRIVER_TM1640_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
169
176#define DRIVER_TM1640_LINK_SCLK_GPIO_INIT(HANDLE, FUC) (HANDLE)->sclk_gpio_init = FUC
177
184#define DRIVER_TM1640_LINK_SCLK_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->sclk_gpio_deinit = FUC
185
192#define DRIVER_TM1640_LINK_SCLK_GPIO_WRITE(HANDLE, FUC) (HANDLE)->sclk_gpio_write = FUC
193
200#define DRIVER_TM1640_LINK_DIN_GPIO_INIT(HANDLE, FUC) (HANDLE)->din_gpio_init = FUC
201
208#define DRIVER_TM1640_LINK_DIN_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->din_gpio_deinit = FUC
209
216#define DRIVER_TM1640_LINK_DIN_GPIO_WRITE(HANDLE, FUC) (HANDLE)->din_gpio_write = FUC
217
224#define DRIVER_TM1640_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
225
232#define DRIVER_TM1640_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
233
240#define DRIVER_TM1640_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
241
245
252
261uint8_t tm1640_info(tm1640_info_t *info);
262
273uint8_t tm1640_init(tm1640_handle_t *handle);
274
286uint8_t tm1640_deinit(tm1640_handle_t *handle);
287
299
314uint8_t tm1640_write_segment(tm1640_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len);
315
328
340
352uint8_t tm1640_set_display(tm1640_handle_t *handle, tm1640_bool_t enable);
353
364uint8_t tm1640_get_display(tm1640_handle_t *handle, tm1640_bool_t *enable);
365
378
390
402uint8_t tm1640_set_test_mode(tm1640_handle_t *handle, tm1640_bool_t enable);
403
414uint8_t tm1640_get_test_mode(tm1640_handle_t *handle, tm1640_bool_t *enable);
415
419
426
440uint8_t tm1640_set_reg(tm1640_handle_t *handle, uint8_t cmd, uint8_t *data, uint8_t len);
441
445
449
450#ifdef __cplusplus
451}
452#endif
453
454#endif
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_NUMBER_9
@ TM1640_NUMBER_3
@ TM1640_NUMBER_4
@ TM1640_NUMBER_1
@ TM1640_NUMBER_7
@ TM1640_NUMBER_5
@ TM1640_NUMBER_6
@ TM1640_NUMBER_2
@ TM1640_NUMBER_0
@ TM1640_NUMBER_8
@ TM1640_BOOL_TRUE
@ TM1640_BOOL_FALSE
@ 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
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]