Control Surface master
MIDI Control Surface library for Arduino
Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | List of all members
MAX7219SevenSegmentDisplay< SPIDriver > Class Template Reference

#include <AH/Hardware/LEDs/MAX7219SevenSegmentDisplay.hpp>

Detailed Description

template<class SPIDriver = decltype(SPI) &>
class AH::MAX7219SevenSegmentDisplay< SPIDriver >

A class for 8-digit 7-segment displays with a MAX7219 driver.

Template Parameters
SPIDriverThe SPI class to use. Usually, the default is fine.

Definition at line 53 of file MAX7219SevenSegmentDisplay.hpp.

+ Inheritance diagram for MAX7219SevenSegmentDisplay< SPIDriver >:
+ Collaboration diagram for MAX7219SevenSegmentDisplay< SPIDriver >:

Public Member Functions

 MAX7219SevenSegmentDisplay (SPIDriver spi, pin_t loadPin, uint8_t chainlength=1)
 Create a MAX7219SevenSegmentDisplay. More...
 
void begin ()
 Initialize. More...
 
void sendDigit (uint16_t digit, uint8_t value)
 Set the value of a single digit. More...
 
uint8_t getNumberOfDigits () const
 Get the total number of digits in this chain of displays, i.e. More...
 
int16_t display (long number, int16_t startDigit=0, int16_t endDigit=-1)
 Display a long integer to the display. More...
 
int16_t display (int number, int16_t startDigit=0, int16_t endDigit=-1)
 Display a long integer to the display. More...
 
int16_t display (unsigned long number, int16_t startDigit=0, int16_t endDigit=-1)
 Display a long unsigned integer to the display. More...
 
int16_t display (unsigned int number, int16_t startDigit=0, int16_t endDigit=-1)
 Display a long unsigned integer to the display. More...
 
int16_t display (const char *text, int16_t startPos=0)
 Display a string of text to the display. More...
 
void printHexChar (int16_t digit, uint8_t value)
 Print a single hexadecimal digit. More...
 
int16_t displayHex (unsigned long number, int16_t startDigit=0, int16_t endDigit=-1)
 Print a number to the display in hexadecimal format. More...
 
void clear ()
 Turn off all LEDs. More...
 
void send (uint8_t digit, uint8_t value, uint8_t chip=0)
 Send the value to the given digit or row. More...
 
void sendRowAll (uint8_t digit, const uint8_t *values, uint8_t leading_dim=1)
 Send values to the given digit or row, sending a different value for each chip. More...
 
void sendAll (const uint8_t *values)
 Send different values to all digits/rows of all chips. More...
 
void sendRawAll (uint8_t opcode, uint8_t value)
 Send the same raw opcode and value to all chips in the chain. More...
 
void sendRaw (uint8_t opcode, uint8_t value, uint8_t chip=0)
 Send a raw opcode and value to the given MAX7219. More...
 
void setIntensity (uint8_t intensity)
 Set the intensity of the LEDs of all chips. More...
 
void setIntensity (uint8_t intensity, uint8_t chip)
 Set the intensity of the LEDs of a specific chip. More...
 
uint8_t getChainLength () const
 Get the number of daisy-chained chips. More...
 

Public Attributes

SPISettings settings
 

Static Public Attributes

static constexpr uint8_t DECODEMODE
 
static constexpr uint8_t INTENSITY
 
static constexpr uint8_t SCANLIMIT
 
static constexpr uint8_t SHUTDOWN
 
static constexpr uint8_t DISPLAYTEST
 

Private Attributes

decltype(SPI) & spi
 
pin_t loadPin
 
uint8_t chainlength
 

Constructor & Destructor Documentation

◆ MAX7219SevenSegmentDisplay()

MAX7219SevenSegmentDisplay ( SPIDriver  spi,
pin_t  loadPin,
uint8_t  chainlength = 1 
)
inline

Create a MAX7219SevenSegmentDisplay.

Parameters
spiThe SPI interface to use.
loadPinThe pin connected to the load pin (C̄S̄) of the MAX7219.
chainlengthThe number of daisy-chained MAX7219 chips.

Definition at line 65 of file MAX7219SevenSegmentDisplay.hpp.

Member Function Documentation

◆ begin()

void begin ( )
inline

Initialize.

See also
MAX7219_Base::begin

Definition at line 72 of file MAX7219SevenSegmentDisplay.hpp.

◆ sendDigit()

void sendDigit ( uint16_t  digit,
uint8_t  value 
)
inline

Set the value of a single digit.

Parameters
digitThe digit to set the value of. May be greater than 7 if more than one chip are daisy-chained.
Digit numbering starts from the right, the rightmost digit is digit zero.
valueThe value/bit pattern to set the digit to.

Definition at line 85 of file MAX7219SevenSegmentDisplay.hpp.

◆ getNumberOfDigits()

uint8_t getNumberOfDigits ( ) const
inline

Get the total number of digits in this chain of displays, i.e.

eight times the number of chips.

Definition at line 93 of file MAX7219SevenSegmentDisplay.hpp.

◆ display() [1/5]

int16_t display ( long  number,
int16_t  startDigit = 0,
int16_t  endDigit = -1 
)
inline

Display a long integer to the display.

The number will be right-aligned.

Parameters
numberThe number to display.
startDigitThe digit (zero-based, counting from the right) to start printing the number.
Digits: 7 6 5 4 3 2 1 0
endDigitThe last digit (zero-based, counting from the right) that can be printed. If the number is larger than endDigit - startDigit, a series of dashes is displayed. If the number is smaller than endDigit - startDigit, the leftmost digits including endDigit are cleared.
Returns
The number of digits that have been overwritten (endDigit - startDigit).

Definition at line 115 of file MAX7219SevenSegmentDisplay.hpp.

◆ display() [2/5]

int16_t display ( int  number,
int16_t  startDigit = 0,
int16_t  endDigit = -1 
)
inline

Display a long integer to the display.

The number will be right-aligned.

Parameters
numberThe number to display.
startDigitThe digit (zero-based, counting from the right) to start printing the number.
Digits: 7 6 5 4 3 2 1 0
endDigitThe last digit (zero-based, counting from the right) that can be printed. If the number is larger than endDigit - startDigit, a series of dashes is displayed. If the number is smaller than endDigit - startDigit, the leftmost digits including endDigit are cleared.
Returns
The number of digits that have been overwritten (endDigit - startDigit).

Definition at line 142 of file MAX7219SevenSegmentDisplay.hpp.

◆ display() [3/5]

int16_t display ( unsigned long  number,
int16_t  startDigit = 0,
int16_t  endDigit = -1 
)
inline

Display a long unsigned integer to the display.

The number will be right-aligned.

Parameters
numberThe number to display.
startDigitThe digit (zero-based, counting from the right) to start printing the number.
Digits: 7 6 5 4 3 2 1 0
endDigitThe last digit (zero-based, counting from the right) that can be printed. If the number is larger than endDigit - startDigit, a series of dashes is displayed. If the number is smaller than endDigit - startDigit, the leftmost digits including endDigit are cleared.
Returns
The number of digits that have been overwritten (endDigit - startDigit).

Definition at line 166 of file MAX7219SevenSegmentDisplay.hpp.

◆ display() [4/5]

int16_t display ( unsigned int  number,
int16_t  startDigit = 0,
int16_t  endDigit = -1 
)
inline

Display a long unsigned integer to the display.

The number will be right-aligned.

Parameters
numberThe number to display.
startDigitThe digit (zero-based, counting from the right) to start printing the number.
Digits: 7 6 5 4 3 2 1 0
endDigitThe last digit (zero-based, counting from the right) that can be printed. If the number is larger than endDigit - startDigit, a series of dashes is displayed. If the number is smaller than endDigit - startDigit, the leftmost digits including endDigit are cleared.
Returns
The number of digits that have been overwritten (endDigit - startDigit).

Definition at line 189 of file MAX7219SevenSegmentDisplay.hpp.

◆ display() [5/5]

int16_t display ( const char *  text,
int16_t  startPos = 0 
)
inline

Display a string of text to the display.

Full stops are printed to the decimal point between characters.

Parameters
textThe null-terminated string to display.
startPosThe position to start printing.

Definition at line 204 of file MAX7219SevenSegmentDisplay.hpp.

◆ printHexChar()

void printHexChar ( int16_t  digit,
uint8_t  value 
)
inline

Print a single hexadecimal digit.

Parameters
digitThe digit to print to [0, 7].
valueThe 4-bit value to print [0, 15].

Definition at line 241 of file MAX7219SevenSegmentDisplay.hpp.

◆ displayHex()

int16_t displayHex ( unsigned long  number,
int16_t  startDigit = 0,
int16_t  endDigit = -1 
)
inline

Print a number to the display in hexadecimal format.

Parameters
numberThe number to display.
startDigitThe digit (zero-based, counting from the right) to start printing the number.
Digits: 7 6 5 4 3 2 1 0
endDigitThe last digit (zero-based, counting from the right) that can be printed. If the number is larger than endDigit - startDigit, a series of dashes is displayed. If the number is smaller than endDigit - startDigit, the leftmost digits including endDigit are cleared.
Returns
The number of digits that have been overwritten (endDigit - startDigit).

Definition at line 269 of file MAX7219SevenSegmentDisplay.hpp.

◆ clear()

void clear ( )
inlineinherited

Turn off all LEDs.

Definition at line 65 of file MAX7219_Base.hpp.

◆ send()

void send ( uint8_t  digit,
uint8_t  value,
uint8_t  chip = 0 
)
inlineinherited

Send the value to the given digit or row.

Parameters
digitThe digit or row to set [0, 7].
valueThe value to set the row to.
chipThe chip to send the digit to.

Definition at line 80 of file MAX7219_Base.hpp.

◆ sendRowAll()

void sendRowAll ( uint8_t  digit,
const uint8_t *  values,
uint8_t  leading_dim = 1 
)
inlineinherited

Send values to the given digit or row, sending a different value for each chip.

The array is often a matrix containing the values for all rows of all chips in this chain. In that case, the leading dimension is 8, because each chip has 8 rows.

[0] chip 0, row 0  ┐
[1] chip 0, row 1  │
[ ] ...            │ 8 elements between two chips
[7] chip 0, row 7  │
[8] chip 1, row 0  ┘
[9] chip 1, row 1
[ ] ...

If you just want to specify a single row for all chips, the leading dimension of the array is 1.

[0] chip 0, row 0  ┐
[1] chip 1, row 0  ┘ 1 element between two chips
[2] chip 2, row 0
[ ] ...
Parameters
digitThe digit or row to set [0, 7].
valuesThe array of values to send.
leading_dimThe leading dimension of the array of values.

Definition at line 115 of file MAX7219_Base.hpp.

◆ sendAll()

void sendAll ( const uint8_t *  values)
inlineinherited

Send different values to all digits/rows of all chips.

The array layout should be as follows:

[0] chip 0, row 0  ┐
[1] chip 0, row 1  │
[ ] ...            │ 8 elements between two chips
[7] chip 0, row 7  │
[8] chip 1, row 0  ┘
[9] chip 1, row 1
[ ] ...

The array has 8 * chainlength elements in total.

Parameters
valuesThe array of values to send.

Definition at line 146 of file MAX7219_Base.hpp.

◆ sendRawAll()

void sendRawAll ( uint8_t  opcode,
uint8_t  value 
)
inlineinherited

Send the same raw opcode and value to all chips in the chain.

Parameters
opcodeThe opcode to send.
valueThe value to send.

Definition at line 159 of file MAX7219_Base.hpp.

◆ sendRaw()

void sendRaw ( uint8_t  opcode,
uint8_t  value,
uint8_t  chip = 0 
)
inlineinherited

Send a raw opcode and value to the given MAX7219.

Parameters
opcodeThe opcode to send.
valueThe value to send.
chipThe chip to send the command to.

Definition at line 180 of file MAX7219_Base.hpp.

◆ setIntensity() [1/2]

void setIntensity ( uint8_t  intensity)
inlineinherited

Set the intensity of the LEDs of all chips.

Parameters
intensityThe intensity [0, 15].

Definition at line 206 of file MAX7219_Base.hpp.

◆ setIntensity() [2/2]

void setIntensity ( uint8_t  intensity,
uint8_t  chip 
)
inlineinherited

Set the intensity of the LEDs of a specific chip.

Parameters
intensityThe intensity [0, 15].
chipThe chip to set the intensity of.

Definition at line 218 of file MAX7219_Base.hpp.

◆ getChainLength()

uint8_t getChainLength ( ) const
inlineinherited

Get the number of daisy-chained chips.

Definition at line 225 of file MAX7219_Base.hpp.

Member Data Documentation

◆ DECODEMODE

constexpr uint8_t DECODEMODE
staticconstexprinherited

Definition at line 41 of file MAX7219_Base.hpp.

◆ INTENSITY

constexpr uint8_t INTENSITY
staticconstexprinherited

Definition at line 42 of file MAX7219_Base.hpp.

◆ SCANLIMIT

constexpr uint8_t SCANLIMIT
staticconstexprinherited

Definition at line 43 of file MAX7219_Base.hpp.

◆ SHUTDOWN

constexpr uint8_t SHUTDOWN
staticconstexprinherited

Definition at line 44 of file MAX7219_Base.hpp.

◆ DISPLAYTEST

constexpr uint8_t DISPLAYTEST
staticconstexprinherited

Definition at line 45 of file MAX7219_Base.hpp.

◆ spi

decltype(SPI) & spi
privateinherited

Definition at line 228 of file MAX7219_Base.hpp.

◆ loadPin

pin_t loadPin
privateinherited

Definition at line 229 of file MAX7219_Base.hpp.

◆ chainlength

uint8_t chainlength
privateinherited

Definition at line 230 of file MAX7219_Base.hpp.

◆ settings

SPISettings settings
inherited

Definition at line 233 of file MAX7219_Base.hpp.


The documentation for this class was generated from the following file: