first scroll

This commit is contained in:
Michael 2021-11-23 14:46:19 +01:00
parent 532e506946
commit 917777d2c5
5 changed files with 716 additions and 47 deletions

View File

@ -25,6 +25,7 @@
*/
#include "LedMatrix.h"
#include "font_6x8_horizontal_MSB.h"
// public
LedMatrix::LedMatrix(int dataPin, int clkPin, int csPin, unsigned int colums, unsigned int rows)
@ -45,22 +46,116 @@ LedMatrix::LedMatrix(int dataPin, int clkPin, int csPin, unsigned int colums, un
modulesPerRow = colums;
modulesPerCol = rows;
width = colums * 8;
height = rows * 8;
displayWidth = colums * 8;
displayHeight = rows * 8;
modules = colums * rows;
moduleOrientation = ORIENTATION_UPSIDE_DOWN;
ledControl = new LedControl(dataPin, clkPin, csPin, modules);
textBuf[0] = 0;
textWidth = 0;
textPosX = 0;
textPosY = 0;
appendTextBuf[0] = 0;
setScrollAppendText(" ");
shutdown(false); // false: on, true: off
clear();
setIntensity(7);
}
bool LedMatrix::drawText( const char *str)
{
strncpy(textBuf, str, TEXT_BUFFER_SIZE -1);
textPosX = 0;
textPosY = 0;
textWidth = strlen(textBuf) * charWidth;
if(textWidth < displayWidth)
{
textPosX = (displayWidth - textWidth) / 2; // center
}
else
{
// The text ist longer than the display width. Scrolling is needed.
// Append a space between end of text and the beginning of the repeting text.
appendSpace();
}
clear();
drawTextAt(textBuf, textPosX, textPosY);
refresh(); // refresh display with new string content
return true;
}
bool LedMatrix::drawTextAt( const char *str, const int x, const int y )
{
// draw character by character
unsigned int len = strlen(str);
int xPos = x;
for (unsigned int i = 0; i < len; i++)
{
drawCharAt(str[i], xPos, y);
xPos += charWidth;
}
return true;
}
bool LedMatrix::scrollText()
{
if(textWidth < displayWidth) return false; // do not scroll when text fits into the display
textPosX--;
if(textPosX + textWidth < 0)
{
textPosX = 0; // start from the beginning after text scrolled out of display;
}
drawTextAt(textBuf, textPosX, textPosY);
int startOfRepeatingTextPos = textPosX + textWidth;
if(startOfRepeatingTextPos < displayWidth)
{
// Draw repeating text.
drawTextAt(textBuf, startOfRepeatingTextPos, textPosY);
}
refresh();
return true;
}
bool LedMatrix::drawCharAt( char c, const int x, const int y)
{
// ignore when the character position is not visible on the display
bool visible = (
x > 0 - (int)charWidth && x < (int)displayWidth &&
y > 0 - (int)charHeight && y < (int)displayHeight
);
if (!visible) return false;
// ignore the leading bits above charWidth of the font definition
static const byte charOffset = 8 - charWidth;
for (byte charY = 0; charY < charHeight; charY++)
{
char pixelRow = (font[c][charY]) << charOffset; // skip the first bits when the character width is smaller than 8 pixel
for (byte charX = 0; charX < charWidth; charX++)
{
bool pixel = (pixelRow & 0x80); // pixel=true when upper bit is set
setPixel(x + charX, y + charY, pixel);
pixelRow = pixelRow << 1; // next pixel
}
}
return true;
}
bool LedMatrix::clearDisplay(void)
{
textBuf[0] = 0;
memset(textBuf, 0, TEXT_BUFFER_SIZE);
textWidth = 0;
clear();
return true;
}
bool LedMatrix::clear(void)
{
for (int i = 0; i < MATRIX_BUFFER_SIZE; i++)
{
buffer[i] = 0;
}
memset(buffer, 0, MATRIX_BUFFER_SIZE);
for (int addr = 0; addr < modules; addr++)
{
ledControl->clearDisplay(addr);
@ -83,14 +178,20 @@ bool LedMatrix::setOrientation(ModuleOrientation orientation)
return true;
}
bool LedMatrix::setPixel(int x, int y, bool on)
bool LedMatrix::setScrollAppendText(const char* append )
{
if (x >= width || y >= height)
strncpy(appendTextBuf, append, TEXT_APPEND_BUFFER_SIZE -1);
return (strlen(append) < TEXT_APPEND_BUFFER_SIZE);
}
bool LedMatrix::setPixel(const int x, const int y, bool on)
{
if (x >= displayWidth || y >= displayHeight)
return false;
int modul_col = x / 8; // x pos divided by 8 is the index of the modul to the right
int buffer_pos = modul_col + y * width / 8;
byte buffer_byte = 8 >> (x % 8);
int buffer_pos = modul_col + y * modulesPerRow;
byte buffer_byte = 0x80 >> (x % 8);
if (on)
{
buffer[buffer_pos] |= buffer_byte; // set bit
@ -99,12 +200,12 @@ bool LedMatrix::setPixel(int x, int y, bool on)
{
buffer[buffer_pos] &= ~buffer_byte; // reset bit
}
refreshByteOfBuffer(buffer_pos);
return true;
}
void LedMatrix::test()
{
/*
const static byte testMatrix[] PROGMEM = {
B00000010, B00111100, B00111100, B00001000,
B00000110, B01000010, B01000010, B00010000,
@ -112,7 +213,7 @@ void LedMatrix::test()
B00000010, B00000100, B00001100, B01000100,
B00000010, B00011000, B00000010, B01111110,
B00000010, B00100000, B01000010, B00000100,
B00000000, B11111110, B00111100, B00000100,
B00000000, B01111110, B00111100, B00000100,
B00000000, B00000000, B00000000, B00000000,
};
for (int i = 0; i < 32; i++)
@ -120,6 +221,17 @@ void LedMatrix::test()
buffer[i] = testMatrix[i];
}
refresh();
*/
drawText("1234567890");
delay(1000);
for( int i=0; i<320; i++)
{
delay(50);
scrollText();
}
//drawCharAt(0x31, 1, 0);
//setPixel(1,30);
//refresh();
}
// private
@ -134,7 +246,7 @@ bool LedMatrix::shutdown(bool b)
void LedMatrix::refresh()
{
for (int i = 0; i < modulesPerRow * height; i++)
for (int i = 0; i < modulesPerRow * displayHeight; i++)
{
refreshByteOfBuffer(i);
}
@ -184,3 +296,9 @@ byte LedMatrix::revereBitorder (byte b)
};
return (lookup[b & 0b1111] << 4) | lookup[b >> 4];
}
void LedMatrix::appendSpace()
{
strncat(textBuf, appendTextBuf, TEXT_BUFFER_SIZE -1);
textWidth = strlen(textBuf) * charWidth;
}

View File

@ -31,6 +31,8 @@
#define MATRIX_MAX_MODULES 32
#define MATRIX_BUFFER_SIZE MATRIX_MAX_MODULES * 8 // 8 bytes per modul. One byte represents 8 LEDs.
#define TEXT_BUFFER_SIZE 256
#define TEXT_APPEND_BUFFER_SIZE 16
/**
@ -52,12 +54,19 @@ class LedMatrix
private:
unsigned int modulesPerRow;
unsigned int modulesPerCol;
unsigned int width; // matrix width [pixel]
unsigned int height; // matrix height [pixel]
unsigned int displayWidth; // matrix width [pixel]
unsigned int displayHeight; // matrix height [pixel]
unsigned int modules; // number of 8x8 mudules
ModuleOrientation moduleOrientation;
byte buffer[MATRIX_BUFFER_SIZE];
LedControl* ledControl;
const unsigned int charWidth = 6;
const unsigned int charHeight = 8;
char textBuf[TEXT_BUFFER_SIZE];
char appendTextBuf[TEXT_APPEND_BUFFER_SIZE];
unsigned int textWidth; // width of text [pixel]
int textPosX; // horizontal pixel position of scrolling text
int textPosY; // vertical pixelposition of scrolling text;
public:
@ -73,7 +82,7 @@ class LedMatrix
* @brief Set all LEDs off.
*
*/
bool clear(void);
bool clearDisplay(void);
/**
* @brief Set the brightness of the display
@ -82,6 +91,13 @@ class LedMatrix
*/
bool setIntensity(byte dim);
/**
* @brief Set the a pending string to the scrolling text to set a distance to te repeating text. Usually some spaces.
*
* @param append text to append to the scrolling text before repeating.
*/
bool setScrollAppendText(const char* append );
/**
* @brief Switches the display on or off
*
@ -96,6 +112,32 @@ class LedMatrix
*/
bool setOrientation(ModuleOrientation orientation);
/**
* @brief draw a string to the display.
* When the text fits into the size of the display, it will be shown in the center.
* When the text is longer than than the display width, it can be scrolled per pixel with function scrollText().
*
* @param str string to display
*/
bool drawText( const char *str );
/**
* @brief dwaws a character string to the display. The position (x,y) is used for the upper left pixtel of the text.
* Existing text before the x position will not be cleared.
*
* @param str string to display
* @param x horizantal pixel position to start with string (default 0)
* @param y vertical pixel position for the top position of the string (default 0)
*/
bool drawTextAt( const char *str, const int x, const int y );
/**
* @brief Scroll the current teext one picel to the left.
* Repeat with from start when end of text reached.
*
*/
bool scrollText();
/**
* @brief Set the Pixel object
*
@ -103,11 +145,14 @@ class LedMatrix
* @param y vertical position from top
* @param on true: on, false: off
*/
bool setPixel( int x, int y, bool on);
bool setPixel( const int x, const int y, bool on=true);
void test();
private:
bool drawCharAt( char c, int x, int y );
bool shutdown(bool b);
bool clear(void);
/**
* @brief sends the changed content of the buffer to the display
@ -119,6 +164,8 @@ class LedMatrix
byte revereBitorder (byte b);
void appendSpace();
};
#endif //LedMatrix_h

View File

@ -0,0 +1,264 @@
// 5x8 ascii font
#ifndef font_5x8_horizontal_MSB_h
#define font_5x8_horizontal_MSB_h
const char font[256][8]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x00
{0x0E,0x11,0x1B,0x11,0x1F,0x0E,0x00,0x00}, // 0x01
{0x0E,0x15,0x1F,0x11,0x1F,0x0E,0x00,0x00}, // 0x02
{0x0A,0x1F,0x1F,0x1F,0x0E,0x04,0x00,0x00}, // 0x03
{0x04,0x04,0x0E,0x1F,0x0E,0x04,0x04,0x00}, // 0x04
{0x04,0x0E,0x04,0x1F,0x15,0x04,0x0E,0x00}, // 0x05
{0x04,0x0E,0x1F,0x1F,0x15,0x04,0x0E,0x00}, // 0x06
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x07
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x08
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x09
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x0A
{0x03,0x03,0x0E,0x11,0x11,0x11,0x0E,0x00}, // 0x0B
{0x0E,0x11,0x11,0x11,0x0E,0x04,0x0E,0x04}, // 0x0C
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x0D
{0x03,0x0F,0x09,0x09,0x0B,0x1B,0x18,0x00}, // 0x0E
{0x00,0x15,0x0E,0x1B,0x0E,0x15,0x00,0x00}, // 0x0F
{0x00,0x10,0x1C,0x1F,0x1C,0x10,0x00,0x00}, // 0x10
{0x00,0x01,0x07,0x1F,0x07,0x01,0x00,0x00}, // 0x11
{0x04,0x0E,0x04,0x04,0x04,0x0E,0x04,0x00}, // 0x12
{0x00,0x0A,0x0A,0x0A,0x00,0x0A,0x00,0x00}, // 0x13
{0x0E,0x1A,0x1A,0x0A,0x0A,0x0A,0x0A,0x00}, // 0x14
{0x06,0x08,0x04,0x0A,0x04,0x02,0x0C,0x00}, // 0x15
{0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00}, // 0x16
{0x04,0x0E,0x04,0x0E,0x04,0x00,0x0E,0x00}, // 0x17
{0x04,0x0E,0x04,0x04,0x04,0x04,0x04,0x00}, // 0x18
{0x04,0x04,0x04,0x04,0x04,0x0E,0x04,0x00}, // 0x19
{0x00,0x00,0x02,0x0F,0x02,0x00,0x00,0x00}, // 0x1A
{0x00,0x00,0x04,0x0F,0x04,0x00,0x00,0x00}, // 0x1B
{0x00,0x00,0x08,0x08,0x08,0x0F,0x00,0x00}, // 0x1C
{0x00,0x00,0x0A,0x1F,0x0A,0x00,0x00,0x00}, // 0x1D
{0x00,0x04,0x04,0x0E,0x0E,0x1F,0x00,0x00}, // 0x1E
{0x00,0x1F,0x0E,0x0E,0x04,0x04,0x00,0x00}, // 0x1F
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x20
{0x04,0x04,0x04,0x04,0x00,0x04,0x00,0x00}, // 0x21
{0x0A,0x0A,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x22
{0x00,0x05,0x1F,0x0A,0x1F,0x14,0x00,0x00}, // 0x23
{0x04,0x0E,0x0C,0x04,0x06,0x0E,0x04,0x00}, // 0x24
{0x09,0x15,0x0E,0x0E,0x15,0x12,0x00,0x00}, // 0x25
{0x04,0x0A,0x0C,0x15,0x12,0x0D,0x00,0x00}, // 0x26
{0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x27
{0x03,0x04,0x08,0x08,0x08,0x04,0x03,0x00}, // 0x28
{0x18,0x04,0x02,0x02,0x02,0x04,0x18,0x00}, // 0x29
{0x04,0x0A,0x04,0x0A,0x00,0x00,0x00,0x00}, // 0x2A
{0x00,0x00,0x00,0x04,0x0E,0x04,0x00,0x00}, // 0x2B
{0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x08}, // 0x2C
{0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00}, // 0x2D
{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00}, // 0x2E
{0x01,0x02,0x02,0x04,0x04,0x08,0x08,0x00}, // 0x2F
{0x06,0x09,0x09,0x09,0x09,0x06,0x00,0x00}, // 0x30
{0x04,0x0C,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0x31
{0x0C,0x02,0x02,0x04,0x08,0x0E,0x00,0x00}, // 0x32
{0x0C,0x02,0x0C,0x02,0x02,0x0C,0x00,0x00}, // 0x33
{0x02,0x06,0x0A,0x0F,0x02,0x02,0x00,0x00}, // 0x34
{0x0E,0x08,0x0C,0x02,0x02,0x0C,0x00,0x00}, // 0x35
{0x06,0x08,0x0E,0x09,0x09,0x06,0x00,0x00}, // 0x36
{0x0F,0x01,0x02,0x04,0x04,0x04,0x00,0x00}, // 0x37
{0x06,0x09,0x06,0x09,0x09,0x06,0x00,0x00}, // 0x38
{0x06,0x09,0x09,0x07,0x01,0x06,0x00,0x00}, // 0x39
{0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00}, // 0x3A
{0x00,0x00,0x04,0x00,0x00,0x04,0x04,0x08}, // 0x3B
{0x00,0x01,0x02,0x0C,0x02,0x01,0x00,0x00}, // 0x3C
{0x00,0x00,0x0F,0x00,0x0F,0x00,0x00,0x00}, // 0x3D
{0x00,0x08,0x04,0x03,0x04,0x08,0x00,0x00}, // 0x3E
{0x0E,0x01,0x02,0x04,0x00,0x04,0x00,0x00}, // 0x3F
{0x06,0x09,0x13,0x15,0x17,0x10,0x0F,0x00}, // 0x40
{0x00,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00}, // 0x41
{0x00,0x0E,0x0A,0x0C,0x0A,0x0E,0x00,0x00}, // 0x42
{0x00,0x07,0x08,0x08,0x08,0x07,0x00,0x00}, // 0x43
{0x00,0x0E,0x09,0x09,0x09,0x0E,0x00,0x00}, // 0x44
{0x00,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00}, // 0x45
{0x00,0x0E,0x08,0x0E,0x08,0x08,0x00,0x00}, // 0x46
{0x00,0x07,0x08,0x0B,0x09,0x07,0x00,0x00}, // 0x47
{0x00,0x09,0x09,0x0F,0x09,0x09,0x00,0x00}, // 0x48
{0x00,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0x49
{0x00,0x0E,0x02,0x02,0x02,0x0C,0x00,0x00}, // 0x4A
{0x00,0x09,0x0A,0x0C,0x0A,0x09,0x00,0x00}, // 0x4B
{0x00,0x08,0x08,0x08,0x08,0x0F,0x00,0x00}, // 0x4C
{0x00,0x11,0x1B,0x15,0x15,0x11,0x00,0x00}, // 0x4D
{0x00,0x09,0x0D,0x0B,0x09,0x09,0x00,0x00}, // 0x4E
{0x00,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0x4F
{0x00,0x0E,0x09,0x0E,0x08,0x08,0x00,0x00}, // 0x50
{0x00,0x0E,0x11,0x11,0x11,0x0E,0x02,0x01}, // 0x51
{0x00,0x0C,0x0A,0x0C,0x0A,0x09,0x00,0x00}, // 0x52
{0x00,0x06,0x08,0x04,0x02,0x0C,0x00,0x00}, // 0x53
{0x00,0x1F,0x04,0x04,0x04,0x04,0x00,0x00}, // 0x54
{0x00,0x09,0x09,0x09,0x09,0x06,0x00,0x00}, // 0x55
{0x00,0x09,0x09,0x09,0x06,0x06,0x00,0x00}, // 0x56
{0x00,0x11,0x15,0x15,0x0A,0x0A,0x00,0x00}, // 0x57
{0x00,0x11,0x0A,0x04,0x0A,0x11,0x00,0x00}, // 0x58
{0x00,0x11,0x0A,0x04,0x04,0x04,0x00,0x00}, // 0x59
{0x00,0x0F,0x01,0x06,0x08,0x0F,0x00,0x00}, // 0x5A
{0x06,0x04,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x5B
{0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00}, // 0x5C
{0x0C,0x04,0x04,0x04,0x04,0x04,0x0C,0x00}, // 0x5D
{0x04,0x0A,0x0A,0x11,0x11,0x00,0x00,0x00}, // 0x5E
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00}, // 0x5F
{0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x60
{0x00,0x00,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0x61
{0x08,0x08,0x0E,0x09,0x09,0x0E,0x00,0x00}, // 0x62
{0x00,0x00,0x06,0x08,0x08,0x06,0x00,0x00}, // 0x63
{0x02,0x02,0x0E,0x12,0x12,0x0E,0x00,0x00}, // 0x64
{0x00,0x00,0x04,0x0E,0x08,0x06,0x00,0x00}, // 0x65
{0x03,0x04,0x0F,0x04,0x04,0x04,0x00,0x00}, // 0x66
{0x00,0x00,0x07,0x09,0x0F,0x01,0x0E,0x00}, // 0x67
{0x08,0x08,0x0A,0x0D,0x09,0x09,0x00,0x00}, // 0x68
{0x04,0x00,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0x69
{0x02,0x00,0x0E,0x02,0x02,0x02,0x0C,0x00}, // 0x6A
{0x08,0x08,0x0A,0x0C,0x0A,0x09,0x00,0x00}, // 0x6B
{0x0C,0x04,0x04,0x04,0x04,0x04,0x00,0x00}, // 0x6C
{0x00,0x00,0x15,0x1F,0x15,0x15,0x00,0x00}, // 0x6D
{0x00,0x00,0x0A,0x0D,0x09,0x09,0x00,0x00}, // 0x6E
{0x00,0x00,0x06,0x09,0x09,0x06,0x00,0x00}, // 0x6F
{0x00,0x00,0x0E,0x09,0x09,0x0E,0x08,0x00}, // 0x70
{0x00,0x00,0x0E,0x12,0x12,0x0E,0x02,0x00}, // 0x71
{0x00,0x00,0x0A,0x0C,0x08,0x08,0x00,0x00}, // 0x72
{0x00,0x00,0x06,0x0C,0x02,0x0C,0x00,0x00}, // 0x73
{0x00,0x04,0x0F,0x04,0x04,0x02,0x00,0x00}, // 0x74
{0x00,0x00,0x09,0x09,0x0B,0x05,0x00,0x00}, // 0x75
{0x00,0x00,0x09,0x09,0x06,0x06,0x00,0x00}, // 0x76
{0x00,0x00,0x15,0x15,0x0E,0x0A,0x00,0x00}, // 0x77
{0x00,0x00,0x09,0x06,0x06,0x09,0x00,0x00}, // 0x78
{0x00,0x00,0x09,0x09,0x06,0x06,0x1C,0x00}, // 0x79
{0x00,0x00,0x0E,0x06,0x08,0x0E,0x00,0x00}, // 0x7A
{0x02,0x04,0x04,0x08,0x04,0x04,0x02,0x00}, // 0x7B
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00}, // 0x7C
{0x08,0x04,0x04,0x02,0x04,0x04,0x08,0x00}, // 0x7D
{0x00,0x00,0x00,0x0D,0x12,0x00,0x00,0x00}, // 0x7E
{0x00,0x04,0x0A,0x0A,0x0A,0x0E,0x00,0x00}, // 0x7F
{0x00,0x07,0x08,0x08,0x08,0x07,0x02,0x04}, // 0x80
{0x09,0x00,0x09,0x09,0x0B,0x05,0x00,0x00}, // 0x81
{0x01,0x02,0x04,0x0E,0x08,0x06,0x00,0x00}, // 0x82
{0x06,0x09,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0x83
{0x0A,0x00,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0x84
{0x10,0x08,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0x85
{0x04,0x0A,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0x86
{0x00,0x00,0x06,0x08,0x08,0x06,0x02,0x04}, // 0x87
{0x06,0x09,0x04,0x0E,0x08,0x06,0x00,0x00}, // 0x88
{0x0A,0x00,0x04,0x0E,0x08,0x06,0x00,0x00}, // 0x89
{0x10,0x08,0x04,0x0E,0x08,0x06,0x00,0x00}, // 0x8A
{0x0A,0x00,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0x8B
{0x06,0x09,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0x8C
{0x10,0x08,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0x8D
{0x0A,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00}, // 0x8E
{0x04,0x0A,0x04,0x0A,0x1F,0x11,0x00,0x00}, // 0x8F
{0x01,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00}, // 0x90
{0x00,0x00,0x1A,0x07,0x1C,0x13,0x00,0x00}, // 0x91
{0x00,0x07,0x0A,0x0B,0x1E,0x13,0x00,0x00}, // 0x92
{0x0C,0x12,0x06,0x09,0x09,0x06,0x00,0x00}, // 0x93
{0x09,0x00,0x06,0x09,0x09,0x06,0x00,0x00}, // 0x94
{0x10,0x08,0x06,0x09,0x09,0x06,0x00,0x00}, // 0x95
{0x0C,0x12,0x09,0x09,0x0B,0x05,0x00,0x00}, // 0x96
{0x08,0x04,0x09,0x09,0x0B,0x05,0x00,0x00}, // 0x97
{0x09,0x00,0x09,0x09,0x06,0x06,0x1C,0x00}, // 0x98
{0x11,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0x99
{0x12,0x09,0x09,0x09,0x09,0x06,0x00,0x00}, // 0x9A
{0x00,0x01,0x06,0x0B,0x0D,0x06,0x08,0x00}, // 0x9B
{0x00,0x04,0x08,0x0C,0x18,0x0E,0x00,0x00}, // 0x9C
{0x01,0x0E,0x13,0x15,0x19,0x0E,0x10,0x00}, // 0x9D
{0x00,0x00,0x09,0x06,0x06,0x09,0x00,0x00}, // 0x9E
{0x02,0x04,0x04,0x0E,0x04,0x04,0x08,0x00}, // 0x9F
{0x01,0x02,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0xA0
{0x01,0x02,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0xA1
{0x01,0x02,0x06,0x09,0x09,0x06,0x00,0x00}, // 0xA2
{0x01,0x02,0x09,0x09,0x0B,0x05,0x00,0x00}, // 0xA3
{0x0F,0x00,0x0A,0x0D,0x09,0x09,0x00,0x00}, // 0xA4
{0x1F,0x09,0x0D,0x0B,0x09,0x09,0x00,0x00}, // 0xA5
{0x0C,0x02,0x0E,0x0A,0x0E,0x00,0x00,0x00}, // 0xA6
{0x04,0x0A,0x0A,0x0A,0x04,0x00,0x00,0x00}, // 0xA7
{0x00,0x04,0x00,0x04,0x04,0x02,0x0C,0x00}, // 0xA8
{0x0E,0x17,0x17,0x15,0x17,0x0E,0x00,0x00}, // 0xA9
{0x00,0x00,0x00,0x0E,0x02,0x02,0x00,0x00}, // 0xAA
{0x19,0x0A,0x0F,0x05,0x0A,0x13,0x00,0x00}, // 0xAB
{0x19,0x0A,0x0A,0x05,0x0B,0x11,0x00,0x00}, // 0xAC
{0x00,0x00,0x04,0x00,0x04,0x04,0x04,0x00}, // 0xAD
{0x00,0x05,0x0A,0x14,0x0A,0x05,0x00,0x00}, // 0xAE
{0x00,0x14,0x0A,0x05,0x0A,0x14,0x00,0x00}, // 0xAF
{0x15,0x00,0x15,0x00,0x15,0x00,0x15,0x00}, // 0xB0
{0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A}, // 0xB1
{0x1F,0x15,0x1F,0x15,0x1F,0x15,0x1F,0x15}, // 0xB2
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04}, // 0xB3
{0x04,0x04,0x04,0x1C,0x04,0x04,0x04,0x04}, // 0xB4
{0x02,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00}, // 0xB5
{0x06,0x09,0x04,0x0A,0x1F,0x11,0x00,0x00}, // 0xB6
{0x08,0x04,0x0A,0x0A,0x1F,0x11,0x00,0x00}, // 0xB7
{0x0E,0x11,0x17,0x15,0x17,0x11,0x0E,0x00}, // 0xB8
{0x0A,0x0A,0x1A,0x02,0x1A,0x0A,0x0A,0x0A}, // 0xB9
{0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A}, // 0xBA
{0x00,0x00,0x1E,0x02,0x1A,0x0A,0x0A,0x0A}, // 0xBB
{0x0A,0x0A,0x1A,0x02,0x1E,0x00,0x00,0x00}, // 0xBC
{0x00,0x04,0x0E,0x08,0x0E,0x04,0x00,0x00}, // 0xBD
{0x00,0x11,0x0A,0x04,0x0E,0x04,0x00,0x00}, // 0xBE
{0x00,0x00,0x00,0x1C,0x04,0x04,0x04,0x04}, // 0xBF
{0x04,0x04,0x04,0x07,0x00,0x00,0x00,0x00}, // 0xC0
{0x04,0x04,0x04,0x1F,0x00,0x00,0x00,0x00}, // 0xC1
{0x00,0x00,0x00,0x1F,0x04,0x04,0x04,0x04}, // 0xC2
{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04}, // 0xC3
{0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00}, // 0xC4
{0x04,0x04,0x04,0x1F,0x04,0x04,0x04,0x04}, // 0xC5
{0x0D,0x12,0x0C,0x02,0x0E,0x0F,0x00,0x00}, // 0xC6
{0x0D,0x12,0x04,0x0A,0x1F,0x11,0x00,0x00}, // 0xC7
{0x0A,0x0A,0x0B,0x08,0x0F,0x00,0x00,0x00}, // 0xC8
{0x00,0x00,0x0F,0x08,0x0B,0x0A,0x0A,0x0A}, // 0xC9
{0x0A,0x0A,0x1B,0x00,0x1F,0x00,0x00,0x00}, // 0xCA
{0x00,0x00,0x1F,0x00,0x1B,0x0A,0x0A,0x0A}, // 0xCB
{0x0A,0x0A,0x0B,0x08,0x0B,0x0A,0x0A,0x0A}, // 0xCC
{0x00,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00}, // 0xCD
{0x0A,0x0A,0x1B,0x00,0x1B,0x0A,0x0A,0x0A}, // 0xCE
{0x00,0x11,0x0E,0x0A,0x0E,0x11,0x00,0x00}, // 0xCF
{0x1E,0x04,0x0E,0x12,0x12,0x0C,0x00,0x00}, // 0xD0
{0x00,0x0E,0x09,0x1D,0x09,0x0E,0x00,0x00}, // 0xD1
{0x0E,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00}, // 0xD2
{0x11,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00}, // 0xD3
{0x10,0x0E,0x08,0x0E,0x08,0x0E,0x00,0x00}, // 0xD4
{0x00,0x00,0x0C,0x04,0x04,0x04,0x00,0x00}, // 0xD5
{0x01,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0xD6
{0x0E,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0xD7
{0x11,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0xD8
{0x04,0x04,0x04,0x1C,0x00,0x00,0x00,0x00}, // 0xD9
{0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04}, // 0xDA
{0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F}, // 0xDB
{0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F}, // 0xDC
{0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x04}, // 0xDD
{0x10,0x0E,0x04,0x04,0x04,0x0E,0x00,0x00}, // 0xDE
{0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00}, // 0xDF
{0x01,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0xE0
{0x04,0x0A,0x0A,0x0A,0x09,0x0A,0x00,0x00}, // 0xE1
{0x0E,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0xE2
{0x10,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0xE3
{0x0D,0x12,0x06,0x09,0x09,0x06,0x00,0x00}, // 0xE4
{0x1E,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00}, // 0xE5
{0x00,0x00,0x09,0x09,0x0B,0x0D,0x08,0x00}, // 0xE6
{0x08,0x08,0x0E,0x09,0x09,0x0E,0x08,0x00}, // 0xE7
{0x00,0x08,0x0E,0x09,0x0E,0x08,0x00,0x00}, // 0xE8
{0x01,0x12,0x12,0x12,0x12,0x0C,0x00,0x00}, // 0xE9
{0x0F,0x09,0x09,0x09,0x09,0x06,0x00,0x00}, // 0xEA
{0x10,0x09,0x09,0x09,0x09,0x06,0x00,0x00}, // 0xEB
{0x01,0x02,0x09,0x09,0x06,0x06,0x18,0x00}, // 0xEC
{0x02,0x15,0x0A,0x04,0x04,0x04,0x00,0x00}, // 0xED
{0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0xEE
{0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00}, // 0xEF
{0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00}, // 0xF0
{0x00,0x00,0x04,0x0E,0x04,0x0E,0x00,0x00}, // 0xF1
{0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x1F}, // 0xF2
{0x19,0x1A,0x0A,0x1D,0x0B,0x11,0x00,0x00}, // 0xF3
{0x0E,0x1A,0x1A,0x0A,0x0A,0x0A,0x0A,0x00}, // 0xF4
{0x06,0x08,0x04,0x0A,0x04,0x02,0x0C,0x00}, // 0xF5
{0x00,0x04,0x00,0x0E,0x00,0x04,0x00,0x00}, // 0xF6
{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08}, // 0xF7
{0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00}, // 0xF8
{0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0xF9
{0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00}, // 0xFA
{0x0C,0x04,0x04,0x04,0x0E,0x00,0x00,0x00}, // 0xFB
{0x0C,0x02,0x0C,0x02,0x0C,0x00,0x00,0x00}, // 0xFC
{0x0C,0x02,0x04,0x08,0x0E,0x00,0x00,0x00}, // 0xFD
{0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x00,0x00}, // 0xFE
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} // 0xFF
};
#endif // font_5x8_horizontal_MSB_h

View File

@ -0,0 +1,264 @@
// 6x8 ascii font
#ifndef font_6x8_horizontal_MSB_h
#define font_6x8_horizontal_MSB_h
const char font[256][8]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x00
{0x0E,0x11,0x1B,0x11,0x15,0x11,0x0E,0x00}, // 0x01
{0x0E,0x1F,0x15,0x1F,0x11,0x1F,0x0E,0x00}, // 0x02
{0x00,0x0A,0x1F,0x1F,0x1F,0x0E,0x04,0x00}, // 0x03
{0x00,0x04,0x0E,0x1F,0x1F,0x0E,0x04,0x00}, // 0x04
{0x04,0x0E,0x0E,0x04,0x1F,0x1F,0x04,0x00}, // 0x05
{0x00,0x04,0x0E,0x1F,0x1F,0x04,0x0E,0x00}, // 0x06
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x07
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x08
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x09
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x0A
{0x00,0x07,0x03,0x0D,0x12,0x12,0x0C,0x00}, // 0x0B
{0x0E,0x11,0x11,0x0E,0x04,0x0E,0x04,0x00}, // 0x0C
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x0D
{0x03,0x0D,0x0B,0x0D,0x0B,0x1B,0x18,0x00}, // 0x0E
{0x00,0x15,0x0E,0x1B,0x0E,0x15,0x00,0x00}, // 0x0F
{0x08,0x0C,0x0E,0x0F,0x0E,0x0C,0x08,0x00}, // 0x10
{0x02,0x06,0x0E,0x1E,0x0E,0x06,0x02,0x00}, // 0x11
{0x04,0x0E,0x1F,0x04,0x1F,0x0E,0x04,0x00}, // 0x12
{0x0A,0x0A,0x0A,0x0A,0x0A,0x00,0x0A,0x00}, // 0x13
{0x0F,0x15,0x15,0x0D,0x05,0x05,0x05,0x00}, // 0x14
{0x0E,0x11,0x0C,0x0A,0x06,0x11,0x0E,0x00}, // 0x15
{0x00,0x00,0x00,0x00,0x00,0x1E,0x1E,0x00}, // 0x16
{0x04,0x0E,0x1F,0x04,0x1F,0x0E,0x04,0x0E}, // 0x17
{0x04,0x0E,0x1F,0x04,0x04,0x04,0x04,0x00}, // 0x18
{0x04,0x04,0x04,0x04,0x1F,0x0E,0x04,0x00}, // 0x19
{0x00,0x04,0x06,0x1F,0x06,0x04,0x00,0x00}, // 0x1A
{0x00,0x04,0x0C,0x1F,0x0C,0x04,0x00,0x00}, // 0x1B
{0x00,0x00,0x00,0x10,0x10,0x10,0x1F,0x00}, // 0x1C
{0x00,0x0A,0x0A,0x1F,0x0A,0x0A,0x00,0x00}, // 0x1D
{0x04,0x04,0x0E,0x0E,0x1F,0x1F,0x00,0x00}, // 0x1E
{0x1F,0x1F,0x0E,0x0E,0x04,0x04,0x00,0x00}, // 0x1F
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x20
{0x04,0x0E,0x0E,0x04,0x04,0x00,0x04,0x00}, // 0x21
{0x1B,0x1B,0x12,0x00,0x00,0x00,0x00,0x00}, // 0x22
{0x00,0x0A,0x1F,0x0A,0x0A,0x1F,0x0A,0x00}, // 0x23
{0x08,0x0E,0x10,0x0C,0x02,0x1C,0x04,0x00}, // 0x24
{0x19,0x19,0x02,0x04,0x08,0x13,0x13,0x00}, // 0x25
{0x08,0x14,0x14,0x08,0x15,0x12,0x0D,0x00}, // 0x26
{0x0C,0x0C,0x08,0x00,0x00,0x00,0x00,0x00}, // 0x27
{0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x00}, // 0x28
{0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x00}, // 0x29
{0x00,0x0A,0x0E,0x1F,0x0E,0x0A,0x00,0x00}, // 0x2A
{0x00,0x04,0x04,0x1F,0x04,0x04,0x00,0x00}, // 0x2B
{0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x08}, // 0x2C
{0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00}, // 0x2D
{0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00}, // 0x2E
{0x00,0x01,0x02,0x04,0x08,0x10,0x00,0x00}, // 0x2F
{0x0E,0x11,0x13,0x15,0x19,0x11,0x0E,0x00}, // 0x30
{0x04,0x0C,0x04,0x04,0x04,0x04,0x0E,0x00}, // 0x31
{0x0E,0x11,0x01,0x06,0x08,0x10,0x1F,0x00}, // 0x32
{0x0E,0x11,0x01,0x0E,0x01,0x11,0x0E,0x00}, // 0x33
{0x02,0x06,0x0A,0x12,0x1F,0x02,0x02,0x00}, // 0x34
{0x1F,0x10,0x10,0x1E,0x01,0x11,0x0E,0x00}, // 0x35
{0x06,0x08,0x10,0x1E,0x11,0x11,0x0E,0x00}, // 0x36
{0x1F,0x01,0x02,0x04,0x08,0x08,0x08,0x00}, // 0x37
{0x0E,0x11,0x11,0x0E,0x11,0x11,0x0E,0x00}, // 0x38
{0x0E,0x11,0x11,0x0F,0x01,0x02,0x0C,0x00}, // 0x39
{0x00,0x00,0x0C,0x0C,0x00,0x0C,0x0C,0x00}, // 0x3A
{0x00,0x00,0x0C,0x0C,0x00,0x0C,0x0C,0x08}, // 0x3B
{0x02,0x04,0x08,0x10,0x08,0x04,0x02,0x00}, // 0x3C
{0x00,0x00,0x1F,0x00,0x00,0x1F,0x00,0x00}, // 0x3D
{0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x00}, // 0x3E
{0x0E,0x11,0x01,0x06,0x04,0x00,0x04,0x00}, // 0x3F
{0x0E,0x11,0x17,0x15,0x17,0x10,0x0E,0x00}, // 0x40
{0x0E,0x11,0x11,0x11,0x1F,0x11,0x11,0x00}, // 0x41
{0x1E,0x11,0x11,0x1E,0x11,0x11,0x1E,0x00}, // 0x42
{0x0E,0x11,0x10,0x10,0x10,0x11,0x0E,0x00}, // 0x43
{0x1E,0x11,0x11,0x11,0x11,0x11,0x1E,0x00}, // 0x44
{0x1F,0x10,0x10,0x1E,0x10,0x10,0x1F,0x00}, // 0x45
{0x1F,0x10,0x10,0x1E,0x10,0x10,0x10,0x00}, // 0x46
{0x0E,0x11,0x10,0x17,0x11,0x11,0x0F,0x00}, // 0x47
{0x11,0x11,0x11,0x1F,0x11,0x11,0x11,0x00}, // 0x48
{0x0E,0x04,0x04,0x04,0x04,0x04,0x0E,0x00}, // 0x49
{0x01,0x01,0x01,0x01,0x11,0x11,0x0E,0x00}, // 0x4A
{0x11,0x12,0x14,0x18,0x14,0x12,0x11,0x00}, // 0x4B
{0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0x00}, // 0x4C
{0x11,0x1B,0x15,0x11,0x11,0x11,0x11,0x00}, // 0x4D
{0x11,0x19,0x15,0x13,0x11,0x11,0x11,0x00}, // 0x4E
{0x0E,0x11,0x11,0x11,0x11,0x11,0x0E,0x00}, // 0x4F
{0x1E,0x11,0x11,0x1E,0x10,0x10,0x10,0x00}, // 0x50
{0x0E,0x11,0x11,0x11,0x15,0x12,0x0D,0x00}, // 0x51
{0x1E,0x11,0x11,0x1E,0x12,0x11,0x11,0x00}, // 0x52
{0x0E,0x11,0x10,0x0E,0x01,0x11,0x0E,0x00}, // 0x53
{0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x00}, // 0x54
{0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x00}, // 0x55
{0x11,0x11,0x11,0x11,0x11,0x0A,0x04,0x00}, // 0x56
{0x11,0x11,0x15,0x15,0x15,0x15,0x0A,0x00}, // 0x57
{0x11,0x11,0x0A,0x04,0x0A,0x11,0x11,0x00}, // 0x58
{0x11,0x11,0x11,0x0A,0x04,0x04,0x04,0x00}, // 0x59
{0x1E,0x02,0x04,0x08,0x10,0x10,0x1E,0x00}, // 0x5A
{0x0E,0x08,0x08,0x08,0x08,0x08,0x0E,0x00}, // 0x5B
{0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00}, // 0x5C
{0x0E,0x02,0x02,0x02,0x02,0x02,0x0E,0x00}, // 0x5D
{0x04,0x0A,0x11,0x00,0x00,0x00,0x00,0x00}, // 0x5E
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F}, // 0x5F
{0x0C,0x0C,0x04,0x00,0x00,0x00,0x00,0x00}, // 0x60
{0x00,0x00,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0x61
{0x10,0x10,0x1E,0x11,0x11,0x11,0x1E,0x00}, // 0x62
{0x00,0x00,0x0E,0x11,0x10,0x11,0x0E,0x00}, // 0x63
{0x01,0x01,0x0F,0x11,0x11,0x11,0x0F,0x00}, // 0x64
{0x00,0x00,0x0E,0x11,0x1E,0x10,0x0E,0x00}, // 0x65
{0x06,0x08,0x08,0x1E,0x08,0x08,0x08,0x00}, // 0x66
{0x00,0x00,0x0F,0x11,0x11,0x0F,0x01,0x0E}, // 0x67
{0x10,0x10,0x1C,0x12,0x12,0x12,0x12,0x00}, // 0x68
{0x04,0x00,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x69
{0x02,0x00,0x06,0x02,0x02,0x02,0x12,0x0C}, // 0x6A
{0x10,0x10,0x12,0x14,0x18,0x14,0x12,0x00}, // 0x6B
{0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x6C
{0x00,0x00,0x1A,0x15,0x15,0x11,0x11,0x00}, // 0x6D
{0x00,0x00,0x1C,0x12,0x12,0x12,0x12,0x00}, // 0x6E
{0x00,0x00,0x0E,0x11,0x11,0x11,0x0E,0x00}, // 0x6F
{0x00,0x00,0x1E,0x11,0x11,0x11,0x1E,0x10}, // 0x70
{0x00,0x00,0x0F,0x11,0x11,0x11,0x0F,0x01}, // 0x71
{0x00,0x00,0x16,0x09,0x08,0x08,0x1C,0x00}, // 0x72
{0x00,0x00,0x0E,0x10,0x0E,0x01,0x0E,0x00}, // 0x73
{0x00,0x08,0x1E,0x08,0x08,0x0A,0x04,0x00}, // 0x74
{0x00,0x00,0x12,0x12,0x12,0x16,0x0A,0x00}, // 0x75
{0x00,0x00,0x11,0x11,0x11,0x0A,0x04,0x00}, // 0x76
{0x00,0x00,0x11,0x11,0x15,0x1F,0x0A,0x00}, // 0x77
{0x00,0x00,0x12,0x12,0x0C,0x12,0x12,0x00}, // 0x78
{0x00,0x00,0x12,0x12,0x12,0x0E,0x04,0x18}, // 0x79
{0x00,0x00,0x1E,0x02,0x0C,0x10,0x1E,0x00}, // 0x7A
{0x06,0x08,0x08,0x18,0x08,0x08,0x06,0x00}, // 0x7B
{0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x00}, // 0x7C
{0x0C,0x02,0x02,0x03,0x02,0x02,0x0C,0x00}, // 0x7D
{0x0A,0x14,0x00,0x00,0x00,0x00,0x00,0x00}, // 0x7E
{0x04,0x0E,0x1B,0x11,0x11,0x1F,0x00,0x00}, // 0x7F
{0x0E,0x11,0x10,0x10,0x11,0x0E,0x04,0x0C}, // 0x80
{0x12,0x00,0x12,0x12,0x12,0x16,0x0A,0x00}, // 0x81
{0x03,0x00,0x0E,0x11,0x1E,0x10,0x0E,0x00}, // 0x82
{0x0E,0x00,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0x83
{0x0A,0x00,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0x84
{0x0C,0x00,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0x85
{0x0E,0x0A,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0x86
{0x00,0x0E,0x11,0x10,0x11,0x0E,0x04,0x0C}, // 0x87
{0x0E,0x00,0x0E,0x11,0x1E,0x10,0x0E,0x00}, // 0x88
{0x0A,0x00,0x0E,0x11,0x1E,0x10,0x0E,0x00}, // 0x89
{0x0C,0x00,0x0E,0x11,0x1E,0x10,0x0E,0x00}, // 0x8A
{0x0A,0x00,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x8B
{0x0E,0x00,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x8C
{0x08,0x00,0x04,0x04,0x04,0x04,0x06,0x00}, // 0x8D
{0x0A,0x00,0x04,0x0A,0x11,0x1F,0x11,0x00}, // 0x8E
{0x0E,0x0A,0x0E,0x1B,0x11,0x1F,0x11,0x00}, // 0x8F
{0x03,0x00,0x1F,0x10,0x1E,0x10,0x1F,0x00}, // 0x90
{0x00,0x00,0x1E,0x05,0x1F,0x14,0x0F,0x00}, // 0x91
{0x0F,0x14,0x14,0x1F,0x14,0x14,0x17,0x00}, // 0x92
{0x0E,0x00,0x0C,0x12,0x12,0x12,0x0C,0x00}, // 0x93
{0x0A,0x00,0x0C,0x12,0x12,0x12,0x0C,0x00}, // 0x94
{0x18,0x00,0x0C,0x12,0x12,0x12,0x0C,0x00}, // 0x95
{0x0E,0x00,0x12,0x12,0x12,0x16,0x0A,0x00}, // 0x96
{0x18,0x00,0x12,0x12,0x12,0x16,0x0A,0x00}, // 0x97
{0x0A,0x00,0x12,0x12,0x12,0x0E,0x04,0x18}, // 0x98
{0x12,0x0C,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0x99
{0x0A,0x00,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0x9A
{0x00,0x00,0x01,0x0E,0x16,0x1A,0x1C,0x20}, // 0x9B
{0x06,0x09,0x08,0x1E,0x08,0x09,0x17,0x00}, // 0x9C
{0x0F,0x13,0x15,0x15,0x15,0x19,0x1E,0x00}, // 0x9D
{0x00,0x11,0x0A,0x04,0x0A,0x11,0x00,0x00}, // 0x9E
{0x02,0x05,0x04,0x0E,0x04,0x04,0x14,0x08}, // 0x9F
{0x06,0x00,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0xA0
{0x06,0x00,0x04,0x04,0x04,0x04,0x06,0x00}, // 0xA1
{0x06,0x00,0x0C,0x12,0x12,0x12,0x0C,0x00}, // 0xA2
{0x06,0x00,0x12,0x12,0x12,0x16,0x0A,0x00}, // 0xA3
{0x0A,0x14,0x00,0x1C,0x12,0x12,0x12,0x00}, // 0xA4
{0x0A,0x14,0x00,0x12,0x1A,0x16,0x12,0x00}, // 0xA5
{0x0E,0x01,0x0F,0x11,0x0F,0x00,0x0F,0x00}, // 0xA6
{0x0C,0x12,0x12,0x12,0x0C,0x00,0x1E,0x00}, // 0xA7
{0x04,0x00,0x04,0x0C,0x10,0x11,0x0E,0x00}, // 0xA8
{0x1E,0x25,0x2B,0x2D,0x2B,0x21,0x1E,0x00}, // 0xA9
{0x00,0x00,0x3F,0x01,0x01,0x00,0x00,0x00}, // 0xAA
{0x10,0x12,0x14,0x0E,0x11,0x02,0x07,0x00}, // 0xAB
{0x10,0x12,0x14,0x0B,0x15,0x07,0x01,0x00}, // 0xAC
{0x04,0x00,0x04,0x04,0x0E,0x0E,0x04,0x00}, // 0xAD
{0x00,0x00,0x09,0x12,0x09,0x00,0x00,0x00}, // 0xAE
{0x00,0x00,0x12,0x09,0x12,0x00,0x00,0x00}, // 0xAF
{0x15,0x00,0x2A,0x00,0x15,0x00,0x2A,0x00}, // 0xB0
{0x15,0x2A,0x15,0x2A,0x15,0x2A,0x15,0x2A}, // 0xB1
{0x2A,0x3F,0x15,0x3F,0x2A,0x3F,0x15,0x3F}, // 0xB2
{0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04}, // 0xB3
{0x04,0x04,0x04,0x3C,0x04,0x04,0x04,0x04}, // 0xB4
{0x06,0x00,0x04,0x0A,0x11,0x1F,0x11,0x00}, // 0xB5
{0x0E,0x00,0x04,0x0A,0x11,0x1F,0x11,0x00}, // 0xB6
{0x0C,0x00,0x04,0x0A,0x11,0x1F,0x11,0x00}, // 0xB7
{0x1E,0x21,0x2D,0x29,0x2D,0x21,0x1E,0x00}, // 0xB8
{0x14,0x34,0x04,0x34,0x14,0x14,0x14,0x14}, // 0xB9
{0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14}, // 0xBA
{0x00,0x3C,0x04,0x34,0x14,0x14,0x14,0x14}, // 0xBB
{0x14,0x34,0x04,0x3C,0x00,0x00,0x00,0x00}, // 0xBC
{0x00,0x04,0x0E,0x10,0x10,0x0E,0x04,0x00}, // 0xBD
{0x11,0x0A,0x04,0x1F,0x04,0x1F,0x04,0x00}, // 0xBE
{0x00,0x00,0x00,0x3C,0x04,0x04,0x04,0x04}, // 0xBF
{0x04,0x04,0x04,0x07,0x00,0x00,0x00,0x00}, // 0xC0
{0x04,0x04,0x04,0x3F,0x00,0x00,0x00,0x00}, // 0xC1
{0x00,0x00,0x00,0x3F,0x04,0x04,0x04,0x04}, // 0xC2
{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04}, // 0xC3
{0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00}, // 0xC4
{0x04,0x04,0x04,0x3F,0x04,0x04,0x04,0x04}, // 0xC5
{0x05,0x0A,0x0E,0x01,0x0F,0x11,0x0F,0x00}, // 0xC6
{0x05,0x0A,0x04,0x0A,0x11,0x1F,0x11,0x00}, // 0xC7
{0x14,0x17,0x10,0x1F,0x00,0x00,0x00,0x00}, // 0xC8
{0x00,0x1F,0x10,0x17,0x14,0x14,0x14,0x14}, // 0xC9
{0x14,0x37,0x00,0x3F,0x00,0x00,0x00,0x00}, // 0xCA
{0x00,0x3F,0x00,0x37,0x14,0x14,0x14,0x14}, // 0xCB
{0x14,0x17,0x10,0x17,0x14,0x14,0x14,0x14}, // 0xCC
{0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00}, // 0xCD
{0x14,0x37,0x00,0x37,0x14,0x14,0x14,0x14}, // 0xCE
{0x11,0x0E,0x11,0x11,0x11,0x0E,0x11,0x00}, // 0xCF
{0x0C,0x10,0x08,0x04,0x0E,0x12,0x0C,0x00}, // 0xD0
{0x0E,0x09,0x09,0x1D,0x09,0x09,0x0E,0x00}, // 0xD1
{0x0E,0x00,0x1F,0x10,0x1E,0x10,0x1F,0x00}, // 0xD2
{0x0A,0x00,0x1F,0x10,0x1E,0x10,0x1F,0x00}, // 0xD3
{0x0C,0x00,0x1F,0x10,0x1E,0x10,0x1F,0x00}, // 0xD4
{0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00}, // 0xD5
{0x06,0x00,0x0E,0x04,0x04,0x04,0x0E,0x00}, // 0xD6
{0x0E,0x00,0x0E,0x04,0x04,0x04,0x0E,0x00}, // 0xD7
{0x0A,0x00,0x0E,0x04,0x04,0x04,0x0E,0x00}, // 0xD8
{0x04,0x04,0x04,0x3C,0x00,0x00,0x00,0x00}, // 0xD9
{0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04}, // 0xDA
{0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F}, // 0xDB
{0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F}, // 0xDC
{0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x00}, // 0xDD
{0x0C,0x00,0x0E,0x04,0x04,0x04,0x0E,0x00}, // 0xDE
{0x3F,0x3F,0x3F,0x3F,0x00,0x00,0x00,0x00}, // 0xDF
{0x06,0x0C,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xE0
{0x00,0x1C,0x12,0x1C,0x12,0x12,0x1C,0x10}, // 0xE1
{0x0E,0x0C,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xE2
{0x18,0x0C,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xE3
{0x0A,0x14,0x00,0x0C,0x12,0x12,0x0C,0x00}, // 0xE4
{0x0A,0x14,0x0C,0x12,0x12,0x12,0x0C,0x00}, // 0xE5
{0x00,0x00,0x12,0x12,0x12,0x1C,0x10,0x10}, // 0xE6
{0x00,0x18,0x10,0x1C,0x12,0x1C,0x10,0x18}, // 0xE7
{0x18,0x10,0x1C,0x12,0x12,0x1C,0x10,0x18}, // 0xE8
{0x06,0x00,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xE9
{0x0E,0x00,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xEA
{0x18,0x00,0x12,0x12,0x12,0x12,0x0C,0x00}, // 0xEB
{0x06,0x00,0x12,0x12,0x12,0x0E,0x04,0x18}, // 0xEC
{0x06,0x00,0x11,0x0A,0x04,0x04,0x04,0x00}, // 0xED
{0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00}, // 0xEE
{0x0C,0x0C,0x08,0x00,0x00,0x00,0x00,0x00}, // 0xEF
{0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00}, // 0xF0
{0x00,0x04,0x0E,0x04,0x00,0x0E,0x00,0x00}, // 0xF1
{0x00,0x00,0x1F,0x00,0x00,0x1F,0x00,0x00}, // 0xF2
{0x30,0x1A,0x34,0x0B,0x15,0x07,0x01,0x00}, // 0xF3
{0x0F,0x15,0x15,0x0D,0x05,0x05,0x05,0x00}, // 0xF4
{0x0E,0x11,0x0C,0x0A,0x06,0x11,0x0E,0x00}, // 0xF5
{0x00,0x04,0x00,0x1F,0x00,0x04,0x00,0x00}, // 0xF6
{0x00,0x00,0x00,0x0E,0x06,0x00,0x00,0x00}, // 0xF7
{0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00}, // 0xF8
{0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x00}, // 0xF9
{0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00}, // 0xFA
{0x08,0x18,0x08,0x08,0x00,0x00,0x00,0x00}, // 0xFB
{0x1C,0x08,0x0C,0x18,0x00,0x00,0x00,0x00}, // 0xFC
{0x18,0x04,0x08,0x1C,0x00,0x00,0x00,0x00}, // 0xFD
{0x00,0x00,0x1E,0x1E,0x1E,0x1E,0x00,0x00}, // 0xFE
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} // 0xFF
};
#endif

View File

@ -175,31 +175,6 @@ bool MAX7291Matrix_init(void)
return true;
}
// /*********************************************************************************************\
// * Clears the display
// * Command: DisplayText
// \*********************************************************************************************/
bool MAX7291Matrix_Text()
{
char sString[CMD_MAX_LEN + 1];
subStr(sString, XdrvMailbox.data, ",", 1);
max7219_Matrix->clear();
AddLog(LOG_LEVEL_DEBUG, PSTR("MTX: sString %s"), sString);
// test
uint8_t length = strlen(sString);
//if(length > modulesPerRow)
length = modulesPerRow;
for (int addr = 0; addr < length; addr++)
{
max7219_Matrix->setPixel(addr, addr, true);
AddLog(LOG_LEVEL_DEBUG, PSTR("MTX: setPixel() %d, %d)"), addr, addr);
}
return true;
}
bool Xdsp19(uint8_t function)
{
bool result = false;
@ -216,7 +191,7 @@ bool Xdsp19(uint8_t function)
result = true;
break;
case FUNC_DISPLAY_CLEAR:
result = max7219_Matrix->clear();
result = max7219_Matrix->clearDisplay();
break;
case FUNC_DISPLAY_DIM:
result = max7219_Matrix->setIntensity(GetDisplayDimmer16());
@ -232,12 +207,13 @@ bool Xdsp19(uint8_t function)
case FUNC_DISPLAY_SCROLLTEXT:
case FUNC_DISPLAY_CLOCK:
case FUNC_DISPLAY_DRAW_STRING:
result = MAX7291Matrix_Text();
result = max7219_Matrix->drawText(dsp_str);
break;
case FUNC_DISPLAY_EVERY_SECOND:
//result = max7219_Matrix->scrollText();
break;
case FUNC_DISPLAY_EVERY_50_MSECOND:
case FUNC_DISPLAY_EVERY_SECOND:
// ignore
return false;
result = max7219_Matrix->scrollText();
default:
result = false;
}