Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MAX7219 by
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,
