modm API documentation
|
Driver for arrays of LED 8x8 Matrices driven by MAX7219. More...
#include <modm/driver/display/max7219_matrix.hpp>
Public Member Functions | |
void | initialize () |
Initialize the display. | |
virtual void | update () override |
Update the display with the content of the RAM buffer. | |
IOStream & | ascii () |
set the output mode to ASCII style for integer types | |
IOStream & | bin () |
set the output mode to binary style for integer types | |
void | clear () final |
void | clearPixel (int16_t x, int16_t y) final |
void | clearPixel (glcd::Point p) |
void | drawCircle (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 | drawImageRaw (glcd::Point start, uint16_t width, uint16_t height, modm::accessor::Flash< uint8_t > data) final |
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 | drawRoundedRectangle (glcd::Point start, uint16_t width, uint16_t height, uint16_t radius) |
IOStream & | endl () |
virtual void | fillCircle (glcd::Point center, uint16_t radius) |
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) |
IOStream & | flush () |
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 & | get (char (&s)[N]) |
std::size_t | getBufferHeight () const final |
std::size_t | getBufferWidth () const final |
glcd::Point | getCursor () const |
uint8_t | getFontHeight () const |
uint16_t | getHeight () const final |
bool | getPixel (int16_t x, int16_t y) const final |
uint16_t | getStringWidth (const char *s) const |
uint16_t | getWidth () const final |
IOStream & | hex () |
set the output mode to hexadecimal 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 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 &)) |
void | setCursor (glcd::Point position) |
void | setCursor (int16_t x, int16_t y) |
void | setCursorX (int16_t x) |
void | setCursorY (int16_t y) |
void | setFont (const uint8_t *newFont) |
void | setFont (const modm::accessor::Flash< uint8_t > *font) |
void | setPixel (int16_t x, int16_t y) final |
void | setPixel (glcd::Point p) |
void | write (char c) |
Static Public Member Functions | |
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 | |
static constexpr char | eof = -1 |
Protected Member Functions | |
void | drawCircle4 (glcd::Point center, int16_t x, int16_t y) |
helper method for drawCircle() and drawEllipse() | |
void | drawHorizontalLine (glcd::Point start, uint16_t length) final |
void | drawVerticalLine (glcd::Point start, uint16_t length) final |
void | writeBin (uint8_t value) |
void | writeHex (uint8_t value) |
void | writeInteger (int16_t value) |
void | writeInteger (uint16_t value) |
void | writeInteger (int32_t value) |
void | writeInteger (uint32_t value) |
template<typename T > | |
void | writeIntegerMode (const T v) |
void | writePointer (const void *value) |
Protected Attributes | |
Max7219< SPI, CS, COLUMNS *ROWS > | max |
uint8_t | buffer [BufferHeight][BufferWidth] |
glcd::Point | cursor |
modm::accessor::Flash< uint8_t > | font |
Writer | writer |
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
SPI | SPI Interface CS Chip Select of MAX7219 |
COLUMNS | Number of modules placed horizontally, from right to left. |
ROW | Number of modules placed vertically |
8x8 LED modules with MAX7219 are easily and cheaply available.
|
inheritedfinalvirtual |
Set whole screen to backgroundColor
Implements modm::GraphicDisplay.
|
inheritedinline |
Set a pixel to backgroundColor
p | point |
|
inheritedfinalvirtual |
|
inherited |
Draw a filled rectangle with rounded corners
start | Upper left corner |
width | Width of rectangle |
height | Height of rectangle |
radius | Rounding radius |
Draw a circle
Uses the midpoint circle algorithm.
center | Center of the circle |
radius | Radius of the circle |
|
inherited |
Draw an ellipse.
Uses a variation of the midpoint algorithm. May be improved through simplification of the used formula.
center | Center of the ellipse |
rx | Radius in x-direction |
ry | Radius in y-direction |
|
inherited |
Draw an image.
The first byte in the image data specifies the with, the second byte the height. Afterwards the actual image data.
start | Upper left corner |
image | Image data in Flash |
|
inheritedfinalvirtual |
Draw an image.
start | Upper left corner |
width | Image width |
height | Image height |
data | Image data in Flash without any size information. |
Reimplemented from modm::GraphicDisplay.
|
inheritedinline |
Draw a line.
Uses the faster drawHorizontalLine() or drawVerticalLine() if possible, otherwise the line is rastered with the Bresenham line algorithm.
start | first point |
end | second point |
|
inherited |
Draw a line
x1 | Start x-position |
y1 | Start y-position |
x2 | End x-position |
y3 | End y-position |
|
inherited |
Draw a rectangle.
start | Upper left corner |
width | Width of rectangle |
height | Height of rectangle |
|
inheritedinline |
Draw a rectangle.
x | Upper left corner x-position |
y | Upper left corner y-position |
width | Width of rectangle |
height | Height of rectangle |
|
inherited |
Draw a rectangle with rounded corners
start | Upper left corner |
width | Width of rectangle |
height | Height of rectangle |
radius | Rounding radius |
|
inheritedvirtual |
Draw a filled circle.
center | Center of the circle |
radius | Radius of the circle |
Reimplemented in modm::ili9341< Interface, Reset, Backlight, BufferSize >.
|
inherited |
Draw a filled rectangle.
start | Upper left corner |
width | Width of rectangle |
height | Height of rectangle |
|
inheritedinline |
Draw a rectangle.
x | Upper left corner x-position |
y | Upper left corner y-position |
width | Width of rectangle |
height | Height of rectangle |
|
inherited |
reads characters into NULL delimited c string in contrast to the standard implementation, this does not care about newline characters in the input
|
inheritedinlinefinalvirtual |
Buffer-array size of second dimension
Implements modm::GraphicDisplay.
|
inheritedinlinefinalvirtual |
Buffer-array size of first dimension
Implements modm::GraphicDisplay.
|
inherited |
Get the height of a character.
|
inheritedinlinefinalvirtual |
Number of pixel in vertical direction.
Implements modm::GraphicDisplay.
|
inherited |
Get the width of (null terminated) string.
|
inheritedinlinefinalvirtual |
Number of pixel in horizontal direction.
Implements modm::GraphicDisplay.
|
inheritedinline |
Set the cursor for text drawing.
position | Cursor position |
|
inheritedinline |
Set the cursor for text drawing.
x | Cursor x-position |
y | Cursor y-position |
|
inheritedinline |
Set the cursor x-position for text drawing.
x | Cursor x-position |
|
inheritedinline |
Set the cursor y-position for text drawing.
y | Cursor y-position |
|
inheritedinline |
Set a new font.
Default font is modm::font::FixedWidth5x8.
newFont | Active font |
|
inheritedinline |
Set a pixel to foregroundColor
p | point |
|
inheritedfinalvirtual |
|
inherited |
Write a single character.