LibDriver TM1622
Loading...
Searching...
No Matches
driver_tm1622.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_TM1622_H
38#define DRIVER_TM1622_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 TM1622_COMMAND_DATA_DELAY
63 #define TM1622_COMMAND_DATA_DELAY 3
64#endif
65
69typedef enum
70{
74
78typedef enum
79{
83
92
101
116
120typedef struct tm1622_handle_s
121{
122 uint8_t (*data_gpio_init)(void);
123 uint8_t (*data_gpio_deinit)(void);
124 uint8_t (*data_gpio_write)(uint8_t level);
125 uint8_t (*data_gpio_read)(uint8_t *level);
126 uint8_t (*wr_gpio_init)(void);
127 uint8_t (*wr_gpio_deinit)(void);
128 uint8_t (*wr_gpio_write)(uint8_t level);
129 uint8_t (*rd_gpio_init)(void);
130 uint8_t (*rd_gpio_deinit)(void);
131 uint8_t (*rd_gpio_write)(uint8_t level);
132 uint8_t (*cs_gpio_init)(void);
133 uint8_t (*cs_gpio_deinit)(void);
134 uint8_t (*cs_gpio_write)(uint8_t level);
135 void (*delay_us)(uint32_t us);
136 void (*delay_ms)(uint32_t ms);
137 void (*debug_print)(const char *const fmt, ...);
138 uint8_t type;
139 uint8_t inited;
141
157
161
168
175#define DRIVER_TM1622_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
176
183#define DRIVER_TM1622_LINK_DATA_GPIO_INIT(HANDLE, FUC) (HANDLE)->data_gpio_init = FUC
184
191#define DRIVER_TM1622_LINK_DATA_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->data_gpio_deinit = FUC
192
199#define DRIVER_TM1622_LINK_DATA_GPIO_WRITE(HANDLE, FUC) (HANDLE)->data_gpio_write = FUC
200
207#define DRIVER_TM1622_LINK_DATA_GPIO_READ(HANDLE, FUC) (HANDLE)->data_gpio_read = FUC
208
215#define DRIVER_TM1622_LINK_WR_GPIO_INIT(HANDLE, FUC) (HANDLE)->wr_gpio_init = FUC
216
223#define DRIVER_TM1622_LINK_WR_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->wr_gpio_deinit = FUC
224
231#define DRIVER_TM1622_LINK_WR_GPIO_WRITE(HANDLE, FUC) (HANDLE)->wr_gpio_write = FUC
232
239#define DRIVER_TM1622_LINK_RD_GPIO_INIT(HANDLE, FUC) (HANDLE)->rd_gpio_init = FUC
240
247#define DRIVER_TM1622_LINK_RD_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->rd_gpio_deinit = FUC
248
255#define DRIVER_TM1622_LINK_RD_GPIO_WRITE(HANDLE, FUC) (HANDLE)->rd_gpio_write = FUC
256
263#define DRIVER_TM1622_LINK_CS_GPIO_INIT(HANDLE, FUC) (HANDLE)->cs_gpio_init = FUC
264
271#define DRIVER_TM1622_LINK_CS_GPIO_DEINIT(HANDLE, FUC) (HANDLE)->cs_gpio_deinit = FUC
272
279#define DRIVER_TM1622_LINK_CS_GPIO_WRITE(HANDLE, FUC) (HANDLE)->cs_gpio_write = FUC
280
287#define DRIVER_TM1622_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
288
295#define DRIVER_TM1622_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
296
303#define DRIVER_TM1622_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
304
308
315
324uint8_t tm1622_info(tm1622_info_t *info);
325
336uint8_t tm1622_init(tm1622_handle_t *handle);
337
349uint8_t tm1622_deinit(tm1622_handle_t *handle);
350
365uint8_t tm1622_write_segment(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len);
366
378
391
403uint8_t tm1622_set_lcd_bias(tm1622_handle_t *handle, tm1622_bool_t enable);
404
416uint8_t tm1622_set_mode(tm1622_handle_t *handle, tm1622_mode_t mode);
417
430
442uint8_t tm1622_set_freq(tm1622_handle_t *handle, tm1622_freq_t freq);
443
456
468uint8_t tm1622_set_timer(tm1622_handle_t *handle, tm1622_bool_t enable);
469
481uint8_t tm1622_set_watchdog(tm1622_handle_t *handle, tm1622_bool_t enable);
482
494uint8_t tm1622_set_tone(tm1622_handle_t *handle, tm1622_bool_t enable);
495
507uint8_t tm1622_set_irq(tm1622_handle_t *handle, tm1622_bool_t enable);
508
519uint8_t tm1622_clear_timer(tm1622_handle_t *handle);
520
532
536
543
555uint8_t tm1622_set_command(tm1622_handle_t *handle, uint16_t cmd);
556
570uint8_t tm1622_set_data(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len);
571
585uint8_t tm1622_get_data(tm1622_handle_t *handle, uint8_t addr, uint8_t *data, uint8_t len);
586
600uint8_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);
601
605
609
610#ifdef __cplusplus
611}
612#endif
613
614#endif
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
@ TM1622_CLOCK_EXT_32K
@ TM1622_CLOCK_RC_32K
@ TM1622_FREQ_F64
@ TM1622_FREQ_F8
@ TM1622_FREQ_F2
@ TM1622_FREQ_F4
@ TM1622_FREQ_F1
@ TM1622_FREQ_F32
@ TM1622_FREQ_F128
@ TM1622_FREQ_F16
@ TM1622_TONE_FREQ_4K
@ TM1622_TONE_FREQ_2K
@ TM1622_MODE_NORMAL
@ TM1622_MODE_TEST
@ TM1622_BOOL_FALSE
@ TM1622_BOOL_TRUE
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
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]