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.
Revision 2:9150a0dc77a3, committed 2016-05-12
- Comitter:
- j3
- Date:
- Thu May 12 18:15:32 2016 +0000
- Parent:
- 1:90a7cf4e7d26
- Child:
- 3:c245060379b9
- Commit message:
- updated auto docs
Changed in this revision
| max7219.cpp | Show annotated file Show diff for this revision Revisions of this file |
| max7219.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/max7219.cpp Tue Jan 26 02:17:20 2016 +0000 +++ b/max7219.cpp Thu May 12 18:15:32 2016 +0000 @@ -1,16 +1,5 @@ /******************************************************************//** * @file max7219.cpp -* -* @author Justin Jordan -* -* @version 0.0 -* -* Started: 08JAN16 -* -* Updated: -* -* @brief Source 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
--- 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,