LibDriver MAX7219  2.0.0
MAX7219 full-featured driver
driver_max7219.h
Go to the documentation of this file.
1 
38 #ifndef DRIVER_MAX7219_H
39 #define DRIVER_MAX7219_H
40 
41 #include <stdio.h>
42 #include <stdint.h>
43 #include <string.h>
44 
45 #ifdef __cplusplus
46 extern "C"{
47 #endif
48 
63 #ifndef MAX7219_MAX_CASCADE_SIZE
64  #define MAX7219_MAX_CASCADE_SIZE 128
65 #endif
66 
79 typedef enum
80 {
81  MAX7219_SEGMENT_A = (1 << 6),
82  MAX7219_SEGMENT_B = (1 << 5),
83  MAX7219_SEGMENT_C = (1 << 4),
84  MAX7219_SEGMENT_D = (1 << 3),
85  MAX7219_SEGMENT_E = (1 << 2),
86  MAX7219_SEGMENT_F = (1 << 1),
87  MAX7219_SEGMENT_G = (1 << 0),
88  MAX7219_SEGMENT_DP = (1 << 7),
90 
94 typedef enum
95 {
113 
117 typedef enum
118 {
136 
140 typedef enum
141 {
151 
155 typedef enum
156 {
174 
178 typedef enum
179 {
183 
187 typedef enum
188 {
192 
196 typedef enum
197 {
203 
207 typedef enum
208 {
218 
231 typedef enum
232 {
248 
252 typedef struct max7219_cascade_s
253 {
255  uint8_t data;
257 
270 typedef struct max7219_handle_s
271 {
272  uint8_t (*spi_init)(void);
273  uint8_t (*spi_deinit)(void);
274  uint8_t (*spi_write_cmd)(uint8_t *buf, uint16_t len);
275  uint8_t (*spi_write)(uint8_t reg, uint8_t *buf, uint16_t len);
276  void (*delay_ms)(uint32_t us);
277  void (*debug_print)(const char *const fmt, ...);
279  uint8_t inited;
281 
285 typedef struct max7219_info_s
286 {
287  char chip_name[32];
288  char manufacturer_name[32];
289  char interface[8];
295  uint32_t driver_version;
297 
315 #define DRIVER_MAX7219_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
316 
323 #define DRIVER_MAX7219_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
324 
331 #define DRIVER_MAX7219_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
332 
339 #define DRIVER_MAX7219_LINK_SPI_WRITE(HANDLE, FUC) (HANDLE)->spi_write = FUC
340 
347 #define DRIVER_MAX7219_LINK_SPI_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->spi_write_cmd = FUC
348 
355 #define DRIVER_MAX7219_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
356 
363 #define DRIVER_MAX7219_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
364 
384 uint8_t max7219_info(max7219_info_t *info);
385 
396 uint8_t max7219_init(max7219_handle_t *handle);
397 
409 uint8_t max7219_deinit(max7219_handle_t *handle);
410 
423 uint8_t max7219_set_display(max7219_handle_t *handle, max7219_digital_t digital, uint8_t data);
424 
436 uint8_t max7219_set_matrix(max7219_handle_t *handle, uint8_t matrix[8]);
437 
449 uint8_t max7219_set_decode(max7219_handle_t *handle, max7219_decode_t decode);
450 
462 uint8_t max7219_set_mode(max7219_handle_t *handle, max7219_mode_t mode);
463 
475 uint8_t max7219_set_mode(max7219_handle_t *handle, max7219_mode_t mode);
476 
489 
502 
515 
539 uint8_t max7219_set_cascade(max7219_handle_t *handle, max7219_cascade_t *cascade, uint16_t len);
540 
565 uint8_t max7219_set_reg(max7219_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
566 
575 #ifdef __cplusplus
576 }
577 #endif
578 
579 #endif
max7219_display_test_mode_t
max7219 display test mode enumeration definition
max7219_decode_t
max7219 decode enumeration definition
uint8_t max7219_set_display(max7219_handle_t *handle, max7219_digital_t digital, uint8_t data)
set the display content
uint8_t max7219_set_decode(max7219_handle_t *handle, max7219_decode_t decode)
set the decode mode
uint8_t max7219_set_scan_limit(max7219_handle_t *handle, max7219_scan_limit_t limit)
set the scan limit
max7219_scan_limit_t
max7219 scan limit enumeration definition
uint8_t max7219_info(max7219_info_t *info)
get chip's information
uint8_t max7219_init(max7219_handle_t *handle)
initialize the chip
max7219_digital_t
max7219 digital enumeration definition
max7219_no_decode_font_t
max7219 no decode font enumeration definition
max7219_mode_t
max7219 mode enumeration definition
uint8_t max7219_set_intensity(max7219_handle_t *handle, max7219_intensity_t intensity)
set the display intensity
uint8_t max7219_set_mode(max7219_handle_t *handle, max7219_mode_t mode)
set the chip mode
uint8_t max7219_deinit(max7219_handle_t *handle)
close the chip
struct max7219_info_s max7219_info_t
max7219 info structure definition
struct max7219_handle_s max7219_handle_t
max7219 handle structure definition
uint8_t max7219_set_matrix(max7219_handle_t *handle, uint8_t matrix[8])
set the content matrix
max7219_segment_t
max7219 segment enumeration definition
max7219_intensity_t
max7219 intensity enumeration definition
max7219_codeb_font_t
max7219 code b font enumeration definition
uint8_t max7219_set_display_test_mode(max7219_handle_t *handle, max7219_display_test_mode_t mode)
set the display test mode
@ MAX7219_DISPLAY_TEST_MODE_ON
@ MAX7219_DISPLAY_TEST_MODE_OFF
@ MAX7219_DECODE_CODEB_DIGITS_0
@ MAX7219_DECODE_CODEB_DIGITS_3_0
@ MAX7219_DECODE_CODEB_DIGITS_7_0
@ MAX7219_DECODE_CODEB_DIGITS_NONE
@ MAX7219_SCAN_LIMIT_DIGIT_0_0
@ MAX7219_SCAN_LIMIT_DIGIT_0_2
@ MAX7219_SCAN_LIMIT_DIGIT_0_5
@ MAX7219_SCAN_LIMIT_DIGIT_0_6
@ MAX7219_SCAN_LIMIT_DIGIT_0_7
@ MAX7219_SCAN_LIMIT_DIGIT_0_1
@ MAX7219_SCAN_LIMIT_DIGIT_0_3
@ MAX7219_SCAN_LIMIT_DIGIT_0_4
@ MAX7219_DIGITAL_0
@ MAX7219_DIGITAL_5
@ MAX7219_DIGITAL_2
@ MAX7219_DIGITAL_6
@ MAX7219_DIGITAL_1
@ MAX7219_DIGITAL_7
@ MAX7219_DIGITAL_4
@ MAX7219_DIGITAL_3
@ MAX7219_NO_DECODE_FONT_5
@ MAX7219_NO_DECODE_FONT_1
@ MAX7219_NO_DECODE_FONT_E
@ MAX7219_NO_DECODE_FONT_7
@ MAX7219_NO_DECODE_FONT_LINE
@ MAX7219_NO_DECODE_FONT_4
@ MAX7219_NO_DECODE_FONT_H
@ MAX7219_NO_DECODE_FONT_BLACK
@ MAX7219_NO_DECODE_FONT_0
@ MAX7219_NO_DECODE_FONT_P
@ MAX7219_NO_DECODE_FONT_9
@ MAX7219_NO_DECODE_FONT_2
@ MAX7219_NO_DECODE_FONT_8
@ MAX7219_NO_DECODE_FONT_3
@ MAX7219_NO_DECODE_FONT_6
@ MAX7219_NO_DECODE_FONT_L
@ MAX7219_MODE_SHUT_DOWN
@ MAX7219_MODE_NORMAL
@ MAX7219_SEGMENT_DP
@ MAX7219_SEGMENT_A
@ MAX7219_SEGMENT_G
@ MAX7219_SEGMENT_C
@ MAX7219_SEGMENT_B
@ MAX7219_SEGMENT_D
@ MAX7219_SEGMENT_E
@ MAX7219_SEGMENT_F
@ MAX7219_INTENSITY_29_32
@ MAX7219_INTENSITY_1_32
@ MAX7219_INTENSITY_11_32
@ MAX7219_INTENSITY_5_32
@ MAX7219_INTENSITY_19_32
@ MAX7219_INTENSITY_7_32
@ MAX7219_INTENSITY_27_32
@ MAX7219_INTENSITY_17_32
@ MAX7219_INTENSITY_15_32
@ MAX7219_INTENSITY_13_32
@ MAX7219_INTENSITY_25_32
@ MAX7219_INTENSITY_31_32
@ MAX7219_INTENSITY_21_32
@ MAX7219_INTENSITY_9_32
@ MAX7219_INTENSITY_3_32
@ MAX7219_INTENSITY_23_32
@ MAX7219_CODEB_FONT_2
@ MAX7219_CODEB_FONT_9
@ MAX7219_CODEB_FONT_5
@ MAX7219_CODEB_FONT_BLACK
@ MAX7219_CODEB_FONT_0
@ MAX7219_CODEB_FONT_4
@ MAX7219_CODEB_FONT_3
@ MAX7219_CODEB_FONT_8
@ MAX7219_CODEB_FONT_L
@ MAX7219_CODEB_FONT_H
@ MAX7219_CODEB_FONT_LINE
@ MAX7219_CODEB_FONT_7
@ MAX7219_CODEB_FONT_6
@ MAX7219_CODEB_FONT_P
@ MAX7219_CODEB_FONT_E
@ MAX7219_CODEB_FONT_1
#define MAX7219_MAX_CASCADE_SIZE
max7219 max cascade size definition
uint8_t max7219_set_cascade(max7219_handle_t *handle, max7219_cascade_t *cascade, uint16_t len)
set the cascade data
max7219_cascade_command_t
max7219 cascade command enumeration definition
struct max7219_cascade_s max7219_cascade_t
max7219 cascade structure definition
@ MAX7219_CASCADE_COMMAND_DIGIT_4
@ MAX7219_CASCADE_COMMAND_DECODE
@ MAX7219_CASCADE_COMMAND_DIGIT_6
@ MAX7219_CASCADE_COMMAND_DIGIT_5
@ MAX7219_CASCADE_COMMAND_DIGIT_3
@ MAX7219_CASCADE_COMMAND_SCAN_LIMIT
@ MAX7219_CASCADE_COMMAND_CASCADE
@ MAX7219_CASCADE_COMMAND_SHUT_DOWN
@ MAX7219_CASCADE_COMMAND_DISPLAY_TEST
@ MAX7219_CASCADE_COMMAND_DIGIT_7
@ MAX7219_CASCADE_COMMAND_DIGIT_1
@ MAX7219_CASCADE_COMMAND_DIGIT_0
@ MAX7219_CASCADE_COMMAND_DIGIT_2
@ MAX7219_CASCADE_COMMAND_INTENSITY
uint8_t max7219_set_reg(max7219_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
max7219 cascade structure definition
max7219_cascade_command_t command
max7219 handle structure definition
uint8_t(* spi_init)(void)
uint8_t(* spi_write)(uint8_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* spi_deinit)(void)
uint8_t buf[MAX7219_MAX_CASCADE_SIZE *2]
void(* delay_ms)(uint32_t us)
uint8_t(* spi_write_cmd)(uint8_t *buf, uint16_t len)
max7219 info structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]