Manuel Caballero / MAX7219
Embed: (wiki syntax)

« Back to documentation index

MAX7219 Class Reference

MAX7219 Class Reference

Example: More...

#include <MAX7219.h>

Public Types

enum  MAX7219_register_address_map_t {
  NO_OP = 0x00, DIGIT_0 = 0x01, DIGIT_1 = 0x02, DIGIT_2 = 0x03,
  DIGIT_3 = 0x04, DIGIT_4 = 0x05, DIGIT_5 = 0x06, DIGIT_6 = 0x07,
  DIGIT_7 = 0x08, DECODE_MODE = 0x09, INTENSITY = 0x0A, SCAN_LIMIT = 0x0B,
  SHUTDOWN = 0x0C, DISPLAY_TEST = 0x0F
}
 

REGISTER ADDRESS MAP.

More...
enum  MAX7219_shutdown_reg_t { SHUTDOWN_MODE = 0x00, NORMAL_OPERATION = 0x01 }
 

Shutdown Register Format.

More...
enum  MAX7219_display_test_reg_t { DISPLAY_TEST_MODE = 0x01, DISPLAY_NORMAL_OPERATION = 0x00 }
 

Display-Test Register Format.

More...
enum  MAX7219_decode_mode_reg_t { NO_DECODE = 0x00, DECODE_DIGIT_0 = 0x01, DECODE_DIGITS_3_0 = 0x0F, DECODE_DIGITS_7_0 = 0xFF }
 

Decode-Mode Register.

More...
enum  MAX7219_code_b_font_reg_t {
  CHARACTER_0 = 0x00, CHARACTER_1 = 0x01, CHARACTER_2 = 0x02, CHARACTER_3 = 0x03,
  CHARACTER_4 = 0x04, CHARACTER_5 = 0x05, CHARACTER_6 = 0x06, CHARACTER_7 = 0x07,
  CHARACTER_8 = 0x08, CHARACTER_9 = 0x09, CHARACTER_HYPHEN = 0x0A, CHARACTER_E = 0x0B,
  CHARACTER_H = 0x0C, CHARACTER_L = 0x0D, CHARACTER_P = 0x0E, CHARACTER_BLANK = 0x0F
}
 

Code B Font.

More...
enum  MAX7219_code_b_dp_t { DP_ENABLED = 0x01, DP_DISABLED = 0x00 }
enum  MAX7219_intensity_reg_t {
  DUTY_CICLE_1_32 = 0x00, DUTY_CICLE_3_32 = 0x01, DUTY_CICLE_5_32 = 0x02, DUTY_CICLE_7_32 = 0x03,
  DUTY_CICLE_9_32 = 0x04, DUTY_CICLE_11_32 = 0x05, DUTY_CICLE_13_32 = 0x06, DUTY_CICLE_15_32 = 0x07,
  DUTY_CICLE_17_32 = 0x08, DUTY_CICLE_19_32 = 0x09, DUTY_CICLE_21_32 = 0x0A, DUTY_CICLE_23_32 = 0x0B,
  DUTY_CICLE_25_32 = 0x0C, DUTY_CICLE_27_32 = 0x0D, DUTY_CICLE_29_32 = 0x0E, DUTY_CICLE_31_32 = 0x0F
}
 

Intensity Register Format.

More...
enum  MAX7219_scan_limit_reg_t {
  DISPLAY_DIGIT_0 = 0x00, DISPLAY_DIGIT_0_1 = 0x01, DISPLAY_DIGIT_0_1_2 = 0x02, DISPLAY_DIGIT_0_1_2_3 = 0x03,
  DISPLAY_DIGIT_0_1_2_3_4 = 0x04, DISPLAY_DIGIT_0_1_2_3_4_5 = 0x05, DISPLAY_DIGIT_0_1_2_3_4_5_6 = 0x06, DISPLAY_DIGIT_0_1_2_3_4_5_6_7 = 0x07
}
 

Scan-Limit Register Format.

More...
enum  MAX7219_digit_t {
  SET_DIGIT_0 = 0x00, SET_DIGIT_1 = 0x01, SET_DIGIT_2 = 0x02, SET_DIGIT_3 = 0x03,
  SET_DIGIT_4 = 0x04, SET_DIGIT_5 = 0x05, SET_DIGIT_6 = 0x06, SET_DIGIT_7 = 0x07
}
 

Select digits.

More...
enum  MAX7219_status_t
 

INTERNAL CONSTANTS.

More...

Public Member Functions

 MAX7219 (PinName mosi, PinName miso, PinName sclk, PinName cs, uint32_t freq)
 Create an MAX7219 object connected to the specified SPI pins.
 ~MAX7219 ()
 Delete MAX7219 object.
MAX7219_status_t MAX7219_Mode (MAX7219_shutdown_reg_t myMAX7219mode)
 It puts the device in shutdown/normal operation mode.
MAX7219_status_t MAX7219_DisplayTest (MAX7219_display_test_reg_t myMAX7219DisplayTestMode)
 It enables all the display or leaves the device in normal operation.
MAX7219_status_t MAX7219_DecodeMode (MAX7219_decode_mode_reg_t myMAX7219DecodeMode)
 It selects the decode mode.
MAX7219_status_t MAX7219_SetIntensity (MAX7219_intensity_reg_t myMAX7219Intensity)
 It sets the intensity.
MAX7219_status_t MAX7219_SetScanLimit (MAX7219_scan_limit_reg_t myMAX7219ScanLimit)
 It sets the scan limit.
MAX7219_status_t MAX7219_SetDigit (MAX7219_digit_t myMAX7219Digit, MAX7219_code_b_font_reg_t myCharacter, MAX7219_code_b_dp_t myDP_status)
 It sets a new value on the chosen digit.

Detailed Description

Example:

include "mbed.h" include "MAX7219.h"

MAX7219 myMAX7219 ( p11, p12, p13, p14, 1000000 ); // MOSI: P11 | MISO: P12 | SCLK: P13 | CS: P14 | FREQ: 1MHz

Ticker newReading; DigitalOut myled1 ( LED1 );

MAX7219::MAX7219_status_t mySPI_status;

bool changeDP_status = false;

Change the state of the DP void readDATA ( void ) { myled1 = 1;

if ( changeDP_status == true ) { DP OFF mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_0, MAX7219::CHARACTER_0, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_1, MAX7219::CHARACTER_1, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_2, MAX7219::CHARACTER_2, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_3, MAX7219::CHARACTER_3, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_4, MAX7219::CHARACTER_4, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_5, MAX7219::CHARACTER_5, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_6, MAX7219::CHARACTER_6, MAX7219::DP_DISABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_7, MAX7219::CHARACTER_7, MAX7219::DP_DISABLED );

changeDP_status = false; } else { DP ON mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_0, MAX7219::CHARACTER_0, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_1, MAX7219::CHARACTER_1, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_2, MAX7219::CHARACTER_2, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_3, MAX7219::CHARACTER_3, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_4, MAX7219::CHARACTER_4, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_5, MAX7219::CHARACTER_5, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_6, MAX7219::CHARACTER_6, MAX7219::DP_ENABLED ); wait_us ( 10 ); mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_7, MAX7219::CHARACTER_7, MAX7219::DP_ENABLED );

changeDP_status = true; }

myled1 = 0; }

int main() { uint32_t i = 0;

BCD code ON mySPI_status = myMAX7219.MAX7219_DecodeMode ( MAX7219::DECODE_DIGITS_7_0 ); wait_us ( 10 );

7 digits available mySPI_status = myMAX7219.MAX7219_SetScanLimit( MAX7219::DISPLAY_DIGIT_0_1_2_3_4_5_6_7 ); wait_us ( 10 );

Configure the intensity mySPI_status = myMAX7219.MAX7219_SetIntensity( MAX7219::DUTY_CICLE_9_32 ); wait_us ( 10 );

Clear all the digits for ( i = MAX7219::SET_DIGIT_0; i <= MAX7219::SET_DIGIT_7; i++ ) { mySPI_status = myMAX7219.MAX7219_SetDigit ( ( MAX7219::MAX7219_digit_t )i, MAX7219::CHARACTER_BLANK, MAX7219::DP_DISABLED ); wait_us ( 10 ); }

Test Mode Enabled: All displays ON mySPI_status = myMAX7219.MAX7219_DisplayTest ( MAX7219::DISPLAY_TEST_MODE ); wait_ms ( 2500 );

Test Mode Disabled mySPI_status = myMAX7219.MAX7219_DisplayTest ( MAX7219::DISPLAY_NORMAL_OPERATION ); wait_us ( 10 );

Device in normal operation mode mySPI_status = myMAX7219.MAX7219_Mode ( MAX7219::NORMAL_OPERATION );

newReading.attach( &readDATA, 1 ); // the address of the function to be attached ( readDATA ) and the interval ( 1s )

Let the callbacks take care of everything while(1) { sleep(); } }

Library for the MAX7219 Serially Interfaced, 8-Digit LED Display Drivers.

Definition at line 138 of file MAX7219.h.


Member Enumeration Documentation

Enumerator:
DP_ENABLED 

DP ON

DP_DISABLED 

DP OFF

Definition at line 223 of file MAX7219.h.

Code B Font.

Enumerator:
CHARACTER_0 

0

CHARACTER_1 

1

CHARACTER_2 

2

CHARACTER_3 

3

CHARACTER_4 

4

CHARACTER_5 

5

CHARACTER_6 

6

CHARACTER_7 

7

CHARACTER_8 

8

CHARACTER_9 

9

CHARACTER_HYPHEN 
CHARACTER_E 

E

CHARACTER_H 

H

CHARACTER_L 

L

CHARACTER_P 

P

CHARACTER_BLANK 

Blank

Definition at line 202 of file MAX7219.h.

Decode-Mode Register.

Enumerator:
NO_DECODE 

No decode for digits 7-0

DECODE_DIGIT_0 

Code B decode for digit 0. No decode for digits 7-1

DECODE_DIGITS_3_0 

Code B decode for digits 3-0. No decode for digits 7-4

DECODE_DIGITS_7_0 

Code B decode for digits 7-0

Definition at line 189 of file MAX7219.h.

Select digits.

Enumerator:
SET_DIGIT_0 

Digit 0 selected

SET_DIGIT_1 

Digit 1 selected

SET_DIGIT_2 

Digit 2 selected

SET_DIGIT_3 

Digit 3 selected

SET_DIGIT_4 

Digit 4 selected

SET_DIGIT_5 

Digit 5 selected

SET_DIGIT_6 

Digit 6 selected

SET_DIGIT_7 

Digit 7 selected

Definition at line 274 of file MAX7219.h.

Display-Test Register Format.

Enumerator:
DISPLAY_TEST_MODE 

All the LEDs are ON

DISPLAY_NORMAL_OPERATION 

Normal operation

Definition at line 178 of file MAX7219.h.

Intensity Register Format.

Enumerator:
DUTY_CICLE_1_32 

Duty cycle 1/32 ( min )

DUTY_CICLE_3_32 

Duty cycle 3/32

DUTY_CICLE_5_32 

Duty cycle 5/32

DUTY_CICLE_7_32 

Duty cycle 7/32

DUTY_CICLE_9_32 

Duty cycle 9/32

DUTY_CICLE_11_32 

Duty cycle 11/32

DUTY_CICLE_13_32 

Duty cycle 13/32

DUTY_CICLE_15_32 

Duty cycle 15/32

DUTY_CICLE_17_32 

Duty cycle 17/32

DUTY_CICLE_19_32 

Duty cycle 19/32

DUTY_CICLE_21_32 

Duty cycle 21/32

DUTY_CICLE_23_32 

Duty cycle 23/32

DUTY_CICLE_25_32 

Duty cycle 25/32

DUTY_CICLE_27_32 

Duty cycle 27/32

DUTY_CICLE_29_32 

Duty cycle 29/32

DUTY_CICLE_31_32 

Duty cycle 31/32 ( max )

Definition at line 234 of file MAX7219.h.

REGISTER ADDRESS MAP.

Enumerator:
NO_OP 

No operation.

DIGIT_0 

Digit 0.

DIGIT_1 

Digit 1.

DIGIT_2 

Digit 2.

DIGIT_3 

Digit 3.

DIGIT_4 

Digit 4.

DIGIT_5 

Digit 5.

DIGIT_6 

Digit 6.

DIGIT_7 

Digit 7.

DECODE_MODE 

Decode Mode.

INTENSITY 

Intensity.

SCAN_LIMIT 

Scan Limit.

SHUTDOWN 

Shutdown.

DISPLAY_TEST 

Display test.

Definition at line 145 of file MAX7219.h.

Scan-Limit Register Format.

Enumerator:
DISPLAY_DIGIT_0 

Display digit 0 only

DISPLAY_DIGIT_0_1 

Display digits 0 & 1

DISPLAY_DIGIT_0_1_2 

Display digits 0 1 2

DISPLAY_DIGIT_0_1_2_3 

Display digits 0 1 2 3

DISPLAY_DIGIT_0_1_2_3_4 

Display digits 0 1 2 3 4

DISPLAY_DIGIT_0_1_2_3_4_5 

Display digits 0 1 2 3 4 5

DISPLAY_DIGIT_0_1_2_3_4_5_6 

Display digits 0 1 2 3 4 5 6

DISPLAY_DIGIT_0_1_2_3_4_5_6_7 

Display digits 0 1 2 3 4 5 6 7

Definition at line 258 of file MAX7219.h.

Shutdown Register Format.

Enumerator:
SHUTDOWN_MODE 

Device in shutdown mode

NORMAL_OPERATION 

Device in normal mode

Definition at line 168 of file MAX7219.h.

INTERNAL CONSTANTS.

Definition at line 300 of file MAX7219.h.


Constructor & Destructor Documentation

MAX7219 ( PinName  mosi,
PinName  miso,
PinName  sclk,
PinName  cs,
uint32_t  freq 
)

Create an MAX7219 object connected to the specified SPI pins.

MAX7219.h.

Parameters:
mosiSPI Master Output Slave Input
misoSPI Master Input Slave Output
sclkSPI clock
csSPI Chip Select
freqSPI frequency in Hz.

Serially Interfaced, 8-Digit LED Display Drivers. Header file.

Returns:
NA
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN.
Warning:
NaN
Precondition:
This code belongs to AqueronteBlog ( http://unbarquero.blogspot.com ).

Definition at line 20 of file MAX7219.cpp.

~MAX7219 (  )

Delete MAX7219 object.

Definition at line 28 of file MAX7219.cpp.


Member Function Documentation

MAX7219::MAX7219_status_t MAX7219_DecodeMode ( MAX7219_decode_mode_reg_t  myMAX7219DecodeMode )

It selects the decode mode.

MAX7219_DecodeMode ( MAX7219_decode_mode_reg_t )

It enables and configures the decode-mode or turns it off.

Parameters:
[in]myMAX7219DecodeMode,:Decode-mode option.
[out]NaN.
Returns:
Status of MAX7219_DecodeMode.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 135 of file MAX7219.cpp.

MAX7219::MAX7219_status_t MAX7219_DisplayTest ( MAX7219_display_test_reg_t  myMAX7219DisplayTestMode )

It enables all the display or leaves the device in normal operation.

MAX7219_DisplayTest ( MAX7219_display_test_reg_t )

It turns all the LEDs on ( Test mode enabled ) or normal operation.

Parameters:
[in]myMAX7219DisplayTestMode,:Mode: Test or Normal operation.
[out]NaN.
Returns:
Status of MAX7219_DisplayTest.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 93 of file MAX7219.cpp.

MAX7219::MAX7219_status_t MAX7219_Mode ( MAX7219_shutdown_reg_t  myMAX7219mode )

It puts the device in shutdown/normal operation mode.

MAX7219_Mode ( MAX7219_shutdown_reg_t )

It puts the device in shutdown mode.

Parameters:
[in]myMAX7219mode,:Shutdown or Normal operation mode.
[out]NaN.
Returns:
Status of MAX7219_Mode.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 53 of file MAX7219.cpp.

MAX7219::MAX7219_status_t MAX7219_SetDigit ( MAX7219_digit_t  myMAX7219Digit,
MAX7219_code_b_font_reg_t  myCharacter,
MAX7219_code_b_dp_t  myDP_status 
)

It sets a new value on the chosen digit.

MAX7219_SetDigit ( MAX7219_digit_t , MAX7219_code_b_font_reg_t , MAX7219_code_b_dp_t )

It sets the digit to be written and its value.

Parameters:
[in]myMAX7219Digit,:Digit to be written.
[in]myCharacter,:The current value.
[in]myDP_status,:DP enabled/disabled.
[out]NaN.
Returns:
Status of MAX7219_SetDigit.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 263 of file MAX7219.cpp.

MAX7219::MAX7219_status_t MAX7219_SetIntensity ( MAX7219_intensity_reg_t  myMAX7219Intensity )

It sets the intensity.

MAX7219_SetIntensity ( MAX7219_intensity_reg_t )

It configures the intensity of the device.

Parameters:
[in]myMAX7219Intensity,:Intensity option.
[out]NaN.
Returns:
Status of MAX7219_SetIntensity.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 177 of file MAX7219.cpp.

MAX7219::MAX7219_status_t MAX7219_SetScanLimit ( MAX7219_scan_limit_reg_t  myMAX7219ScanLimit )

It sets the scan limit.

MAX7219_SetScanLimit ( MAX7219_scan_limit_reg_t )

It configures duty cycle of the device.

Parameters:
[in]MAX7219_scan_limit_reg_t,:Duty cycle option.
[out]NaN.
Returns:
Status of MAX7219_SetScanLimit.
Author:
Manuel Caballero
Date:
9/October/2017
Version:
9/October/2017 The ORIGIN
Precondition:
NaN
Warning:
NaN.

Definition at line 219 of file MAX7219.cpp.