Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit
Fork of MAX7219 by
Demo MAX7219 library on MIKROELEKTRONIKA Serial 7-Seg Display 8-Digit This demo has been tested on NUCLEO-F411RE
For 7 segments display : https://www.mikroe.com/serial-7-seg-8-digit-board
For MAX7219 https://www.maximintegrated.com/en/products/power/display-power-control/MAX7219.html
use library https://os.mbed.com/teams/Maxim-Integrated/code/MAX7219/
7 segments display is connected to default SPI on Arduino connectors. STM32 MISO on RC5_PB5 (MOSI) STM32 MOSI on MISO STM32 SCK on RC3_RF3 (SCK) STM32 SS on CS0 5v GND
see manual (https://download.mikroe.com/documents/add-on-boards/other/display/serial-7seg-8-digit-display/serial-7seg-8-digit-display-manual-v100.pdf ) and photo for details
Diff: max7219.h
- Revision:
- 2:9150a0dc77a3
- Parent:
- 1:90a7cf4e7d26
- Child:
- 3:c245060379b9
diff -r 90a7cf4e7d26 -r 9150a0dc77a3 max7219.h --- a/max7219.h Tue Jan 26 02:17:20 2016 +0000 +++ b/max7219.h Thu May 12 18:15:32 2016 +0000 @@ -1,16 +1,5 @@ /******************************************************************//** * @file max7219.h -* -* @author Justin Jordan -* -* @version 0.0 -* -* Started: 08JAN16 -* -* Updated: -* -* @brief Header file for Max7219 class -*********************************************************************** * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -49,6 +38,19 @@ #include "mbed.h" +/** +* @brief Structure for device configuration +* @code +* #include "max7219.h" +* +* max7219_configuration_t cfg = { +* .device_number = 1, +* .decode_mode = 0, +* .intensity = Max7219::MAX7219_INTENSITY_8, +* .scan_limit = Max7219::MAX7219_SCAN_8 +* }; +* @endcode +*/ typedef struct { uint8_t device_number; @@ -58,10 +60,53 @@ }max7219_configuration_t; +/** +* @brief Serially Interfaced, 8-Digit, LED Display Driver +* +* @details The MAX7219/MAX7221 are compact, serial input/output common-cathode +* display drivers that interface microprocessors (µPs) to 7-segment numeric +* LED displays of up to 8 digits, bar-graph displays, or 64 individual LEDs. +* Included on-chip are a BCD code-B decoder, multiplex scan circuitry, segment +* and digit drivers, and an 8x8 static RAM that stores each digit. Only one +* external resistor is required to set the segment current for all LEDs. +* The MAX7221 is compatible with SPI™, QSPI™, and MICROWIRE™, and has +* slew-rate-limited segment drivers to reduce EMI. +* +* @code +* #include "mbed.h" +* #include "max7219.h" +* +* Max7219 max7219(SPI0_MOSI, SPI0_MISO, SPI0_SCK, SPI0_SS); +* +* int main() +* { +* max7219_configuration_t cfg = { +* .device_number = 1, +* .decode_mode = 0, +* .intensity = Max7219::MAX7219_INTENSITY_8, +* .scan_limit = Max7219::MAX7219_SCAN_8 +* }; +* +* max7219.init_device(cfg); +* max7219.enable_device(1); +* max7219.set_display_test(); +* wait(1); +* max7219.clear_display_test(); +* +* while (1) { +* max7219.write_digit(1, Max7219::MAX7219_DIGIT_0, ... +* } +* } +* @endcode +*/ class Max7219 { public: + /** + * @brief Digit and Control Registers + * @details The 14 addressable digit and control registers. + */ typedef enum { MAX7219_NO_OP = 0, @@ -81,6 +126,12 @@ }max7219_register_e; + /** + * @brief Intensity values + * @details Digital control of display brightness is provided by an + * internal pulse-width modulator, which is controlled by + * the lower nibble of the intensity register. + */ typedef enum { MAX7219_INTENSITY_0 = 0, @@ -102,6 +153,13 @@ }max7219_intensity_e; + /** + * @brief Scan limit for mutiplexing digits + * @details The scan-limit register sets how many digits are + * displayed, from 1 to 8. They are displayed in a multiplexed + * manner with a typical display scan rate of 800Hz with 8 + * digits displayed. + */ typedef enum { MAX7219_SCAN_1 = 0,