#ifndef __FONT_H__
#define __FONT_H__

#include <avr/io.h>
#include <avr/pgmspace.h>

#define FONT_CHAR_COUNT 27        // there are 26 characters + a space
#define FONT_CHAR_WIDTH  6        // characters are five pixels wide + a blank line

const char fontArray[FONT_CHAR_COUNT * FONT_CHAR_WIDTH] PROGMEM = {
  0x1E, 0x05, 0x05, 0x05, 0x1E, 0x00, // A
  0x1F, 0x15, 0x15, 0x16, 0x08, 0x00, // B
  0x0E, 0x11, 0x11, 0x11, 0x11, 0x00, // C
  0x1F, 0x11, 0x11, 0x11, 0x0E, 0x00, // D
  0x1F, 0x15, 0x15, 0x11, 0x11, 0x00, // E
  0x1F, 0x05, 0x05, 0x01, 0x01, 0x00, // F
  0x0E, 0x11, 0x11, 0x15, 0x1D, 0x00, // G
  0x1F, 0x04, 0x04, 0x04, 0x1F, 0x00, // H
  0x11, 0x11, 0x1F, 0x11, 0x11, 0x00, // I
  0x09, 0x11, 0x11, 0x11, 0x0F, 0x00, // J
  0x1F, 0x08, 0x04, 0x0A, 0x11, 0x00, // K
  0x1F, 0x10, 0x10, 0x10, 0x10, 0x00, // L
  0x1F, 0x02, 0x04, 0x02, 0x1F, 0x00, // M
  0x1F, 0x02, 0x04, 0x08, 0x1F, 0x00, // N
  0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00, // O
  0x1F, 0x05, 0x05, 0x05, 0x02, 0x00, // P
  0x0E, 0x11, 0x15, 0x19, 0x1E, 0x00, // Q
  0x1F, 0x05, 0x05, 0x0D, 0x12, 0x00, // R
  0x12, 0x15, 0x15, 0x15, 0x08, 0x00, // S
  0x01, 0x01, 0x1F, 0x01, 0x01, 0x00, // T
  0x0F, 0x10, 0x10, 0x10, 0x0F, 0x00, // U
  0x07, 0x08, 0x10, 0x08, 0x07, 0x00, // V
  0x0F, 0x10, 0x0C, 0x10, 0x0F, 0x00, // W
  0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00, // X
  0x03, 0x04, 0x18, 0x04, 0x03, 0x00, // Y
  0x11, 0x19, 0x15, 0x13, 0x11, 0x00, // Z
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00  // space
};
volatile uint8_t fontPtr = 0;     // a pointer to keep track of the current character
volatile uint8_t fontCharPtr = 0; // a pointer to keep track of the current line of the character

#endif