LibDriver MAX7219
Loading...
Searching...
No Matches
driver_max7219.h
Go to the documentation of this file.
1
37
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
46extern "C"{
47#endif
48
54
59
63#ifndef MAX7219_MAX_CASCADE_SIZE
64 #define MAX7219_MAX_CASCADE_SIZE 128
65#endif
66
70
75
79typedef 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
113
136
151
174
183
192
203
218
222
227
248
257
261
266
270typedef 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
297
301
308
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
368
375
384uint8_t max7219_info(max7219_info_t *info);
385
396uint8_t max7219_init(max7219_handle_t *handle);
397
409uint8_t max7219_deinit(max7219_handle_t *handle);
410
423uint8_t max7219_set_display(max7219_handle_t *handle, max7219_digital_t digital, uint8_t data);
424
436uint8_t max7219_set_matrix(max7219_handle_t *handle, uint8_t matrix[8]);
437
450
463
476
489
502
515
519
526
539uint8_t max7219_set_cascade(max7219_handle_t *handle, max7219_cascade_t *cascade, uint16_t len);
540
544
551
565uint8_t max7219_set_reg(max7219_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
566
570
574
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
uint32_t driver_version
char manufacturer_name[32]