#include <MD_Parola.h>
#include <MD_MAX72xx.h>
//
// https://forum.arduino.cc/t/swedish-aao-on-led-matrix-display/703532/20
//
// https://en.wikipedia.org/wiki/ISO/IEC_8859-1
// https://en.wikipedia.org/wiki/ISO/IEC_8859-2
//
MD_Parola display = MD_Parola( MD_MAX72XX::PAROLA_HW, 12, 8);
// define degree celsius sign and narrow number font - 4 vertical lines instead of 5 (1 is already narrow so it is the same)
// char definition should be in global scope because only pointer is changed (used in other functions)
const uint8_t degC[] = {4, 0x06, 0x09, 0x09, 0x06},
col[] = {2, 0x36, 0x36},
nx[] = {5, 0x01, 0x01, 0x79, 0x05, 0x03},
n0[] = {4, 0x3E, 0x51, 0x49, 0x3E}, //
n2[] = {4, 0x71, 0x49, 0x49, 0x46},
n3[] = {4, 0x41, 0x49, 0x49, 0x36},
n4[] = {4, 0x0F, 0x08, 0x08, 0x7F},
n5[] = {4, 0x4F, 0x49, 0x49, 0x31},
n6[] = {4, 0x3C, 0x4A, 0x49, 0x31},
n7[] = {4, 0x01, 0x79, 0x05, 0x03},
n8[] = {4, 0x36, 0x49, 0x49, 0x36},
n9[] = {4, 0x46, 0x49, 0x29, 0x1E},
z0[] = {5, 0x38, 0x45, 0x46, 0x45, 0x44}, // C8 200 Č
z1[] = {5, 0x30, 0x49, 0x4A, 0x49, 0x48}, // E8 232 č
z2[] = {5, 0x38, 0x44, 0x46, 0x45, 0x44}, // C6 198 Ć
z3[] = {5, 0x30, 0x48, 0x4A, 0x49, 0x48}, // E6 230 ć
z4[] = {5, 0x10, 0x7C, 0x54, 0x44, 0x38}, // D0 208 Đ
z5[] = {5, 0x20, 0x70, 0x54, 0x7E, 0x04}, // F0 240 đ
z6[] = {5, 0x48, 0x55, 0x56, 0x55, 0x34}, // A9 169 Š
z7[] = {5, 0x00, 0x51, 0x7A, 0x29, 0x00}, // B9 185 š
z8[] = {5, 0x64, 0x55, 0x56, 0x55, 0x4C}, // AE 174 Ž
z9[] = {5, 0x00, 0x69, 0x7A, 0x59, 0x00}; // BE 190 ž
void setup () {
display.begin();
// dodati brojeve
display.addChar(241, n0); // F1 241 ñ
display.addChar(242, n2); // F2 242 ò
display.addChar(243, n3); // F3 243 ó
display.addChar(244, n4); // F4 244 ô
display.addChar(245, n5); // F5 245 õ
display.addChar(246, n6); // F6 246 ö
display.addChar(248, n7); // F8 248 ø
display.addChar(249, n8); // F9 249 ù
display.addChar(250, n9); // FA 250 ú
// dodati dijakritike
display.addChar(200, z0);
display.addChar(232, z1);
display.addChar(198, z2);
display.addChar(230, z3);
display.addChar(208, z4);
display.addChar(240, z5);
display.addChar(169, z6);
display.addChar(185, z7);
display.addChar(174, z8);
display.addChar(190, z9);
// brojevi
//display.print("\xf1" "\xf2" "\xf3" "\xf4" "\xf5" "\xf6" "\xf8" "\xf9" "\xfa");
// dijakritici
display.print("\xc8" "\xe8" "\xc6" "\xe6" "\xd0" "\xf0" "\xa9" "\xb9" "\xae" "\xbe");
//
// specijalni znakovi
//display.print("\x1 \x2 \x3 \x4 \x5 \x6 \x7");
//display.print("\x8 \x9 \xa \xb \xc \xd \xe");
//display.print("\xf \x10 \x11 \x12 \x13 \x14");
//display.print("\x15 \x16 \x17 \x18 \x19 \x1a \x1b");
//display.print("\x1c \x1d \x1e \x1f \x20 \x21 \x22");
//display.print("\x23 \x24 \x25 \x26 \x27 \x28 \x29");
//display.print(" \x2a \x2b \x2c \x2d \x2e \x2f \x30 \x31 \x32");
}
void loop () {
}