30 lines
595 B
C++
30 lines
595 B
C++
#include "disp.h"
|
|
|
|
byte buffer[7]; // "width,height,data[5]" single character buffer.
|
|
|
|
|
|
|
|
unsigned char reverse(unsigned char b) {
|
|
b = (b & 0xF0) >> 4 | (b & 0x0F) << 4;
|
|
b = (b & 0xCC) >> 2 | (b & 0x33) << 2;
|
|
b = (b & 0xAA) >> 1 | (b & 0x55) << 1;
|
|
return b;
|
|
}
|
|
|
|
void printCharOffset(char c, int offset, LedControl lc)
|
|
{
|
|
if (c < 32)
|
|
return;
|
|
c -= 32;
|
|
memcpy_P(buffer, CH + 7 * c, 7);
|
|
for (int i = 0; i <= buffer[0]; i++)
|
|
{
|
|
lc.setRow(0, i+offset, reverse(buffer[i + 2]));
|
|
}
|
|
}
|
|
|
|
void printChar(char c, LedControl lc)
|
|
{
|
|
printCharOffset(c,2,lc);
|
|
}
|