modm API documentation
modm::Max7219Matrix< SPI, CS, COLUMNS, ROWS > Class Template Reference

Driver for arrays of LED 8x8 Matrices driven by MAX7219. More...

#include <modm/driver/display/max7219_matrix.hpp>

Inheritance diagram for modm::Max7219Matrix< SPI, CS, COLUMNS, ROWS >:
modm::MonochromeGraphicDisplayVertical< 8 *COLUMNS, 8 *ROWS > modm::MonochromeGraphicDisplay< Width, Height, Width, Height/8 > modm::GraphicDisplay modm::IOStream

Public Member Functions

void initialize ()
 Initialize the display.
 
virtual void update () override
 Update the display with the content of the RAM buffer.
 
- Public Member Functions inherited from modm::MonochromeGraphicDisplayVertical< 8 *COLUMNS, 8 *ROWS >
void clearPixel (int16_t x, int16_t y) final
 
void drawImageRaw (glcd::Point start, uint16_t width, uint16_t height, modm::accessor::Flash< uint8_t > data) final
 
bool getPixel (int16_t x, int16_t y) const final
 
void setPixel (int16_t x, int16_t y) final
 
- Public Member Functions inherited from modm::MonochromeGraphicDisplay< Width, Height, Width, Height/8 >
void clear () final
 
std::size_t getBufferHeight () const final
 
std::size_t getBufferWidth () const final
 
uint16_t getHeight () const final
 
uint16_t getWidth () const final
 
- Public Member Functions inherited from modm::GraphicDisplay
void setPixel (glcd::Point p)
 
void clearPixel (glcd::Point p)
 
void drawLine (glcd::Point start, glcd::Point end)
 
void drawLine (int16_t x1, int16_t y1, int16_t x2, int16_t y2)
 
void drawRectangle (glcd::Point start, uint16_t width, uint16_t height)
 
void drawRectangle (int16_t x, int16_t y, uint16_t width, uint16_t height)
 
void fillRectangle (glcd::Point start, uint16_t width, uint16_t height)
 
void fillRectangle (int16_t x, int16_t y, uint16_t width, uint16_t height)
 
void drawRoundedRectangle (glcd::Point start, uint16_t width, uint16_t height, uint16_t radius)
 
void drawCircle (glcd::Point center, uint16_t radius)
 
virtual void fillCircle (glcd::Point center, uint16_t radius)
 
void drawEllipse (glcd::Point center, int16_t rx, int16_t ry)
 
void drawImage (glcd::Point start, modm::accessor::Flash< uint8_t > image)
 
void setCursor (glcd::Point position)
 
void setCursor (int16_t x, int16_t y)
 
void setCursorX (int16_t x)
 
void setCursorY (int16_t y)
 
glcd::Point getCursor () const
 
void setFont (const uint8_t *newFont)
 
void setFont (const modm::accessor::Flash< uint8_t > *font)
 
uint8_t getFontHeight () const
 
uint16_t getStringWidth (const char *s) const
 
void write (char c)
 
- Public Member Functions inherited from modm::IOStream
 IOStream (IODevice &odevice)
 
IOStream & write (char c)
 
IOStream & get (char &c)
 Reads one character and returns it if available. Otherwise, returns IOStream::eof.
 
IOStream & get (char *s, size_t n)
 
template<size_t N>
IOStream &IOStream & flush ()
 
IOStream & endl ()
 
IOStream & bin ()
 set the output mode to binary style for integer types
 
IOStream & hex ()
 set the output mode to hexadecimal style for integer types
 
IOStream & ascii ()
 set the output mode to ASCII style for integer types
 
IOStream & operator<< (const bool &v)
 
IOStream & operator<< (const char &v)
 
IOStream & operator<< (const uint8_t &v)
 
IOStream & operator<< (const int16_t &v)
 
IOStream & operator<< (const uint16_t &v)
 
IOStream & operator<< (const int32_t &v)
 
IOStream & operator<< (const uint32_t &v)
 
IOStream & operator<< (const int64_t &v)
 
IOStream & operator<< (const uint64_t &v)
 
IOStream & operator<< (const int &v)
 
IOStream & operator<< (const unsigned int &v)
 
IOStream & operator<< (const float &v)
 
IOStream & operator<< (const double &v)
 
IOStream & operator<< (const char *s)
 
IOStream & operator<< (const void *p)
 write the hex value of a pointer
 
template<class Ret , class... Args>
IOStream & operator<< (Ret (*pointer)(Args...))
 Write the hex value of any function pointer.
 
IOStream & operator<< (IOStream &(*format)(IOStream &))
 
IOStream & printf (const char *fmt,...) __attribute__ ((format (printf
 
IOStream IOStream & vprintf (const char *fmt, va_list vlist) __attribute__ ((format (printf
 

Protected Attributes

Max7219< SPI, CS, COLUMNS *ROWS > max
 
- Protected Attributes inherited from modm::MonochromeGraphicDisplay< Width, Height, Width, Height/8 >
uint8_t buffer [BufferHeight][BufferWidth]
 
- Protected Attributes inherited from modm::GraphicDisplay
Writer writer
 
modm::accessor::Flash< uint8_t > font
 
glcd::Point cursor
 

Additional Inherited Members

- Static Public Member Functions inherited from modm::GraphicDisplay
static uint8_t getFontHeight (const modm::accessor::Flash< uint8_t > *font)
 
static uint16_t getStringWidth (const char *s, const modm::accessor::Flash< uint8_t > *font)
 
- Static Public Attributes inherited from modm::IOStream
static constexpr char eof = -1
 
- Protected Member Functions inherited from modm::MonochromeGraphicDisplayVertical< 8 *COLUMNS, 8 *ROWS >
void drawHorizontalLine (glcd::Point start, uint16_t length) final
 
void drawVerticalLine (glcd::Point start, uint16_t length) final
 
- Protected Member Functions inherited from modm::GraphicDisplay
void drawCircle4 (glcd::Point center, int16_t x, int16_t y)
 helper method for drawCircle() and drawEllipse()
 
- Protected Member Functions inherited from modm::IOStream
template<typename T >
void writeIntegerMode (const T v)
 
void writeInteger (int16_t value)
 
void writeInteger (uint16_t value)
 
void writeInteger (int32_t value)
 
void writeInteger (uint32_t value)
 
void writeInteger (int64_t value)
 
void writeInteger (uint64_t value)
 
void writeFloat (float value)
 
void writeDouble (const double &value)
 
void writePointer (const void *value)
 
void writeHex (uint8_t value)
 
void writeBin (uint8_t value)
 

Detailed Description

template<typename SPI, typename CS, uint8_t COLUMNS = 1, uint8_t ROWS = 1>
class modm::Max7219Matrix< SPI, CS, COLUMNS, ROWS >

Driver for arrays of LED 8x8 Matrices driven by MAX7219.

Orientation of the module is with the connector to bottom. Multiple displays are connected from right to left.

Layout of the modules for a 24 pixel x 8 pixel display.

      CCCC BBBB
+----+----+----+
|    |    |    |
|    |    |    |
+----+----+----+
|MMMM|MMMM|MMMM|
+----+----+----+
 CCCC BBBB AAAA

MMMM is the Chip AAAA is connected to the microcontroller BBBB is connected to BBBB CCCC is connected to CCCC

Template Parameters
SPISPI Interface CS Chip Select of MAX7219
COLUMNSNumber of modules placed horizontally, from right to left.
ROWNumber of modules placed vertically

8x8 LED modules with MAX7219 are easily and cheaply available.


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