43 #define CHIP_NAME "Maxim Integrated MAX7219"
44 #define MANUFACTURER_NAME "Maxim Integrated"
45 #define SUPPLY_VOLTAGE_MIN 4.0f
46 #define SUPPLY_VOLTAGE_MAX 5.5f
47 #define MAX_CURRENT 320.0f
48 #define TEMPERATURE_MIN -40.0f
49 #define TEMPERATURE_MAX 85.0f
50 #define DRIVER_VERSION 2000
55 #define MAX7219_REG_DECODE 0x09
56 #define MAX7219_REG_INTENSITY 0x0A
57 #define MAX7219_REG_SCAN_LIMIT 0x0B
58 #define MAX7219_REG_SHUT_DOWN 0x0C
59 #define MAX7219_REG_DISPLAY_TEST 0x0F
86 res = handle->
spi_write(digital, &data, 1);
122 for (i = 0; i < 8; i++)
124 res = handle->
spi_write(i + 1, &matrix[i], 1);
164 handle->
debug_print(
"max7219: len is over MAX7219_MAX_CASCADE_SIZE.\n");
169 for (i = 0; i < len; i++)
172 handle->
buf[i * 2 + 1] = cascade[i].
data;
177 handle->
debug_print(
"max7219: write command failed.\n");
214 handle->
debug_print(
"max7219: set decode failed.\n");
251 handle->
debug_print(
"max7219: set mode failed.\n");
288 handle->
debug_print(
"max7219: set mode failed.\n");
321 in = (uint8_t)intensity;
325 handle->
debug_print(
"max7219: set intensity failed.\n");
362 handle->
debug_print(
"max7219: set scan limit failed.\n");
392 handle->
debug_print(
"max7219: spi_init is null.\n");
398 handle->
debug_print(
"max7219: spi_deinit is null.\n");
404 handle->
debug_print(
"max7219: spi_write_cmd is null.\n");
410 handle->
debug_print(
"max7219: spi_write is null.\n");
416 handle->
debug_print(
"max7219: delay_ms is null.\n");
423 handle->
debug_print(
"max7219: spi init failed.\n");
460 handle->
debug_print(
"max7219: set mode failed.\n");
467 handle->
debug_print(
"max7219: spi deinit failed.\n");
500 if (handle->
spi_write(reg, buf, len) != 0)
#define MAX7219_REG_INTENSITY
#define MAX7219_REG_DECODE
chip register definition
#define MAX7219_REG_SHUT_DOWN
#define MAX7219_REG_SCAN_LIMIT
#define SUPPLY_VOLTAGE_MAX
#define MAX7219_REG_DISPLAY_TEST
#define MANUFACTURER_NAME
#define SUPPLY_VOLTAGE_MIN
#define CHIP_NAME
chip information definition
driver max7219 header file
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_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
uint8_t max7219_set_matrix(max7219_handle_t *handle, uint8_t matrix[8])
set the content matrix
max7219_intensity_t
max7219 intensity enumeration definition
uint8_t max7219_set_display_test_mode(max7219_handle_t *handle, max7219_display_test_mode_t mode)
set the display test mode
#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
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
char manufacturer_name[32]
float supply_voltage_min_v