This is what I got so far and unluckily it isn't working. I'm trying to make it print the char '[ch915]'.
This is the function:
void ht1632_putchar_greek(int x, int y, char c)
{
byte charIndex;
if (c < 193 || c > 254)
charIndex = 0;
else
charIndex = c - 33;
for (byte row=0; row<8; row++) {
byte rowDots = pgm_read_byte_near(&greek[charIndex][row]);
for (byte col=0; col<6; col++) {
if (rowDots & (1<<(5-col)))
ht1632_plot(x+col, y+row, 1);
else
ht1632_plot(x+col, y+row, 0);
}
}
}
This is the array (just the first 4 chars for now):
unsigned char PROGMEM greek[4][8] = {
{
0x00, // ________ blank (ascii 32)
0x00, // ________
0x00, // ________
0x00, // ________
0x00, // ________
0x00, // ________
0x00, // ________
0x00 // ________
},
{
0x00, // ________ A
0x1C, // ___XXX__
0x22, // __X___X_
0x22, // __X___X_
0x3E, // __XXXXX_
0x22, // __X___X_
0x22, // __X___X_
0x00 // ________
},
{
0x00, // ________ B
0x3C, // __XXXX__
0x22, // __X___X_
0x3C, // __XXXX__
0x22, // __X___X_
0x22, // __X___X_
0x3C, // __XXXX__
0x00 // ________
},
{
0x00, // ________
0x3E, // __XXXXX_
0x20, // __X_____
0x20, // __X_____
0x20, // __X_____
0x20, // __X_____
0x20, // __X_____
0x00 // ________
}
};
EDIT:
I call the function like this:
ht1632_putchar_greek(0, 0, '[ch915]');