#include <AH/Hardware/LEDs/MAX7219SevenSegmentDisplay.hpp>
A class for 8-digit 7-segment displays with a MAX7219 driver.
SPIDriver | The SPI class to use. Usually, the default is fine. |
Definition at line 51 of file MAX7219SevenSegmentDisplay.hpp.
Public Member Functions | |
MAX7219SevenSegmentDisplay (SPIDriver spi, pin_t loadPin, uint8_t chainlength=1) | |
Create a MAX7219SevenSegmentDisplay. | |
void | begin () |
Initialize. | |
void | sendDigit (uint16_t digit, uint8_t value) |
Set the value of a single digit. | |
uint8_t | getNumberOfDigits () const |
Get the total number of digits in this chain of displays, i.e. | |
int16_t | display (long number, int16_t startDigit=0, int16_t endDigit=-1) |
Display a long integer to the display. | |
int16_t | display (int number, int16_t startDigit=0, int16_t endDigit=-1) |
Display a long integer to the display. | |
int16_t | display (unsigned long number, int16_t startDigit=0, int16_t endDigit=-1) |
Display a long unsigned integer to the display. | |
int16_t | display (unsigned int number, int16_t startDigit=0, int16_t endDigit=-1) |
Display a long unsigned integer to the display. | |
int16_t | display (const char *text, int16_t startPos=0) |
Display a string of text to the display. | |
void | printHexChar (int16_t digit, uint8_t value) |
Print a single hexadecimal digit. | |
int16_t | displayHex (unsigned long number, int16_t startDigit=0, int16_t endDigit=-1) |
Print a number to the display in hexadecimal format. | |
void | clear () |
Turn off all LEDs. | |
void | send (uint8_t digit, uint8_t value, uint8_t chip=0) |
Send the value to the given digit or row. | |
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. | |
void | sendAll (const uint8_t *values) |
Send different values to all digits/rows of all chips. | |
void | sendRawAll (uint8_t opcode, uint8_t value) |
Send the same raw opcode and value to all chips in the chain. | |
void | sendRaw (uint8_t opcode, uint8_t value, uint8_t chip=0) |
Send a raw opcode and value to the given MAX7219. | |
void | setIntensity (uint8_t intensity) |
Set the intensity of the LEDs of all chips. | |
void | setIntensity (uint8_t intensity, uint8_t chip) |
Set the intensity of the LEDs of a specific chip. | |
uint8_t | getChainLength () const |
Get the number of daisy-chained chips. | |
Public Attributes | |
SPISettings | settings {SPI_MAX_SPEED, MSBFIRST, SPI_MODE0} |
Static Public Attributes | |
static constexpr uint8_t | DECODEMODE = 9 |
static constexpr uint8_t | INTENSITY = 10 |
static constexpr uint8_t | SCANLIMIT = 11 |
static constexpr uint8_t | SHUTDOWN = 12 |
static constexpr uint8_t | DISPLAYTEST = 15 |
Private Attributes | |
SPIDriver | spi |
pin_t | loadPin |
uint8_t | chainlength |
|
inline |
Create a MAX7219SevenSegmentDisplay.
spi | The SPI interface to use. |
loadPin | The pin connected to the load pin (C̄S̄) of the MAX7219. |
chainlength | The number of daisy-chained MAX7219 chips. |
Definition at line 63 of file MAX7219SevenSegmentDisplay.hpp.
Initialize.
Definition at line 70 of file MAX7219SevenSegmentDisplay.hpp.
Set the value of a single digit.
digit | The 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. |
value | The value/bit pattern to set the digit to. |
Definition at line 83 of file MAX7219SevenSegmentDisplay.hpp.
Get the total number of digits in this chain of displays, i.e.
eight times the number of chips.
Definition at line 91 of file MAX7219SevenSegmentDisplay.hpp.
Display a long integer to the display.
The number will be right-aligned.
number | The number to display. |
startDigit | The digit (zero-based, counting from the right) to start printing the number. Digits: 7 6 5 4 3 2 1 0 |
endDigit | The 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. |
endDigit - startDigit
). Definition at line 113 of file MAX7219SevenSegmentDisplay.hpp.
Display a long integer to the display.
The number will be right-aligned.
number | The number to display. |
startDigit | The digit (zero-based, counting from the right) to start printing the number. Digits: 7 6 5 4 3 2 1 0 |
endDigit | The 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. |
endDigit - startDigit
). Definition at line 140 of file MAX7219SevenSegmentDisplay.hpp.
Display a long unsigned integer to the display.
The number will be right-aligned.
number | The number to display. |
startDigit | The digit (zero-based, counting from the right) to start printing the number. Digits: 7 6 5 4 3 2 1 0 |
endDigit | The 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. |
endDigit - startDigit
). Definition at line 164 of file MAX7219SevenSegmentDisplay.hpp.
Display a long unsigned integer to the display.
The number will be right-aligned.
number | The number to display. |
startDigit | The digit (zero-based, counting from the right) to start printing the number. Digits: 7 6 5 4 3 2 1 0 |
endDigit | The 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. |
endDigit - startDigit
). Definition at line 187 of file MAX7219SevenSegmentDisplay.hpp.
Display a string of text to the display.
Full stops are printed to the decimal point between characters.
text | The null-terminated string to display. |
startPos | The position to start printing. |
Definition at line 202 of file MAX7219SevenSegmentDisplay.hpp.
Print a single hexadecimal digit.
digit | The digit to print to [0, 7]. |
value | The 4-bit value to print [0, 15]. |
Definition at line 239 of file MAX7219SevenSegmentDisplay.hpp.
Print a number to the display in hexadecimal format.
number | The number to display. |
startDigit | The digit (zero-based, counting from the right) to start printing the number. Digits: 7 6 5 4 3 2 1 0 |
endDigit | The 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. |
endDigit - startDigit
). Definition at line 267 of file MAX7219SevenSegmentDisplay.hpp.
Turn off all LEDs.
Definition at line 62 of file MAX7219_Base.hpp.
Send the value to the given digit or row.
digit | The digit or row to set [0, 7]. |
value | The value to set the row to. |
chip | The chip to send the digit to. |
Definition at line 77 of file MAX7219_Base.hpp.
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 [ ] ...
digit | The digit or row to set [0, 7]. |
values | The array of values to send. |
leading_dim | The leading dimension of the array of values. |
Definition at line 112 of file MAX7219_Base.hpp.
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.
values | The array of values to send. |
Definition at line 143 of file MAX7219_Base.hpp.
Send the same raw opcode and value to all chips in the chain.
opcode | The opcode to send. |
value | The value to send. |
Definition at line 156 of file MAX7219_Base.hpp.
Send a raw opcode and value to the given MAX7219.
opcode | The opcode to send. |
value | The value to send. |
chip | The chip to send the command to. |
Definition at line 177 of file MAX7219_Base.hpp.
Set the intensity of the LEDs of all chips.
intensity | The intensity [0, 15]. |
Definition at line 203 of file MAX7219_Base.hpp.
Set the intensity of the LEDs of a specific chip.
intensity | The intensity [0, 15]. |
chip | The chip to set the intensity of. |
Definition at line 215 of file MAX7219_Base.hpp.
Get the number of daisy-chained chips.
Definition at line 222 of file MAX7219_Base.hpp.
Definition at line 38 of file MAX7219_Base.hpp.
Definition at line 39 of file MAX7219_Base.hpp.
Definition at line 40 of file MAX7219_Base.hpp.
Definition at line 41 of file MAX7219_Base.hpp.
Definition at line 42 of file MAX7219_Base.hpp.
Definition at line 225 of file MAX7219_Base.hpp.
Definition at line 226 of file MAX7219_Base.hpp.
Definition at line 227 of file MAX7219_Base.hpp.
|
inherited |
Definition at line 230 of file MAX7219_Base.hpp.