//Arduino Tv framebuffer / Display
//video out voltage levels
#define _SYNC 0x00
#define _BLACK 0x01
#define _WHITE 0x03
//dimensions of the screen
#define WIDTH 38
#define HEIGHT 14
//number of lines to display
#define DISPLAY_LINES 240
//video pins
#define DATA_PIN 9
#define SYNC_PIN 8
//the video frameBuffer
byte frameBuffer[WIDTH][HEIGHT];
//loop indices
byte index, index2;
//pal video line loop
byte line;
//current drawing line in framebuffer
byte newLine;
//draw a pixel to the buffer
void setPixel(byte x,byte y)
{
frameBuffer[x][y]= _WHITE;
}
// draw a black pixel to the buffer
void clearPixel(byte x,byte y)
{
frameBuffer[x][y]= _BLACK;
}
// clear the screen
void clearScreen()
{
for (index=0;index<WIDTH;index++)
for (index2=0;index2<=HEIGHT;++index2)
{
frameBuffer[index][index2] = _BLACK;
}
}
//desenha caractere A
void letraA(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+1,7);
setPixel(COORD+2,7);
setPixel(COORD+3,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere B
void letraB(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD,4);
setPixel(COORD+3,4);
setPixel(COORD,5);
setPixel(COORD+3,5);
setPixel(COORD,6);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere C
void letraC(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere D
void letraD(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere E
void letraE(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD,5);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
setPixel(COORD+4,9);
}
//desenha caractere É
void letraEs(int COORD)
{
//setPixel(COORD+4,1);
setPixel(COORD+3,2);
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD,5);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
setPixel(COORD+4,9);
}
//desenha caractere F
void letraF(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD,5);
setPixel(COORD,6);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD,9);
}
//desenha caractere G
void letraG(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD,6);
setPixel(COORD+3,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere H
//void letraH(int COORD)
//{
//setPixel(COORD,3);
//setPixel(COORD+4,3);
//setPixel(COORD,4);
//setPixel(COORD+4,4);
//setPixel(COORD,5);
//setPixel(COORD+4,5);
//setPixel(COORD,6);
//setPixel(COORD+1,6);
//setPixel(COORD+2,6);
//setPixel(COORD+3,6);
//setPixel(COORD+4,6);
//setPixel(COORD,7);
//setPixel(COORD+4,7);
//setPixel(COORD,8);
//setPixel(COORD+4,8);
//setPixel(COORD,9);
//setPixel(COORD+4,9);
//}
//desenha caractere I
void letraI(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+2,4);
setPixel(COORD+2,5);
setPixel(COORD+2,6);
setPixel(COORD+2,7);
setPixel(COORD+2,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere J
void letraJ(int COORD)
{
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD+3,4);
setPixel(COORD+3,5);
setPixel(COORD+3,6);
setPixel(COORD+3,7);
setPixel(COORD,8);
setPixel(COORD+3,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
}
//desenha caractere K
void letraK(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+3,4);
setPixel(COORD,5);
setPixel(COORD+2,5);
setPixel(COORD,6);
setPixel(COORD+1,6);
setPixel(COORD,7);
setPixel(COORD+2,7);
setPixel(COORD,8);
setPixel(COORD+3,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere L
void letraL(int COORD)
{
setPixel(COORD,3);
setPixel(COORD,4);
setPixel(COORD,5);
setPixel(COORD,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD,9);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
setPixel(COORD+4,9);
}
//desenha caractere M
void letraM(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+1,4);
setPixel(COORD+3,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+2,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere N
void letraN(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+1,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+2,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+3,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere O
void letraO(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere P
void letraP(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD,8);
setPixel(COORD,9);
}
//desenha caractere Q
void letraQ(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD+1,8);
setPixel(COORD+2,8);
setPixel(COORD+3,8);
setPixel(COORD+3,9);
}
//desenha caractere R
void letraR(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+2,7);
setPixel(COORD,8);
setPixel(COORD+3,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere S
void letraS(int COORD)
{
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+1,6);
setPixel(COORD+2,6);
setPixel(COORD+3,6);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere T
void letraT(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD+2,4);
setPixel(COORD+2,5);
setPixel(COORD+2,6);
setPixel(COORD+2,7);
setPixel(COORD+2,8);
setPixel(COORD+2,9);
}
//desenha caractere U
void letraU(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+4,8);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
}
//desenha caractere V
void letraV(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD+1,6);
setPixel(COORD+3,6);
setPixel(COORD+1,7);
setPixel(COORD+3,7);
setPixel(COORD+1,8);
setPixel(COORD+3,8);
setPixel(COORD+2,9);
}
//desenha caractere X
void letraX(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD+1,4);
setPixel(COORD+3,4);
setPixel(COORD+1,5);
setPixel(COORD+3,5);
setPixel(COORD+2,6);
setPixel(COORD+1,7);
setPixel(COORD+3,7);
setPixel(COORD+1,8);
setPixel(COORD+3,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere W
void letraW(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD,5);
setPixel(COORD+4,5);
setPixel(COORD,6);
setPixel(COORD+4,6);
setPixel(COORD,7);
setPixel(COORD+2,7);
setPixel(COORD+4,7);
setPixel(COORD,8);
setPixel(COORD+1,8);
setPixel(COORD+3,8);
setPixel(COORD+4,8);
setPixel(COORD,9);
setPixel(COORD+4,9);
}
//desenha caractere Y
void letraY(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+4,3);
setPixel(COORD,4);
setPixel(COORD+4,4);
setPixel(COORD+1,5);
setPixel(COORD+3,5);
setPixel(COORD+2,6);
setPixel(COORD+2,7);
setPixel(COORD+2,8);
setPixel(COORD+2,8);
}
//desenha caractere Z
void letraZ(int COORD)
{
setPixel(COORD,3);
setPixel(COORD+1,3);
setPixel(COORD+2,3);
setPixel(COORD+3,3);
setPixel(COORD+4,3);
setPixel(COORD+3,4);
setPixel(COORD+2,5);
setPixel(COORD+2,6);
setPixel(COORD+2,7);
setPixel(COORD+1,8);
setPixel(COORD,9);
setPixel(COORD+1,9);
setPixel(COORD+2,9);
setPixel(COORD+3,9);
setPixel(COORD+4,9);
}
//limpa caractere A
void limpaletraA(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+1,7);
clearPixel(COORD+2,7);
clearPixel(COORD+3,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere B
void limpaletraB(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD,4);
clearPixel(COORD+3,4);
clearPixel(COORD,5);
clearPixel(COORD+3,5);
clearPixel(COORD,6);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere C
void limpaletraC(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere D
void limpaletraD(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere E
void limpaletraE(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD,5);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
clearPixel(COORD+4,9);
}
//limpa caractere É
void limpaletraEs(int COORD)
{
//clearPixel(COORD+4,1);
clearPixel(COORD+3,2);
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD,5);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
clearPixel(COORD+4,9);
}
//limpa caractere F
void limpaletraF(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD,5);
clearPixel(COORD,6);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD,9);
}
//limpa caractere G
void limpaletraG(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD,6);
clearPixel(COORD+3,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere H
//void limpaletraH(int COORD)
//{
//clearscreen();
//clearPixel(COORD,3);
//clearPixel(COORD+4,3);
//clearPixel(COORD,4);
//clearPixel(COORD+4,4);
//clearPixel(COORD,5);
//clearPixel(COORD+4,5);
//clearPixel(COORD,6);
//clearPixel(COORD+1,6);
//clearPixel(COORD+2,6);
//clearPixel(COORD+3,6);
//clearPixel(COORD+4,6);
//clearPixel(COORD,7);
//clearPixel(COORD+4,7);
//clearPixel(COORD,8);
//clearPixel(COORD+4,8);
//clearPixel(COORD,9);
//clearPixel(COORD+4,9);
//}
//limpa caractere I
void limpaletraI(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+2,4);
clearPixel(COORD+2,5);
clearPixel(COORD+2,6);
clearPixel(COORD+2,7);
clearPixel(COORD+2,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere J
void limpaletraJ(int COORD)
{
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD+3,4);
clearPixel(COORD+3,5);
clearPixel(COORD+3,6);
clearPixel(COORD+3,7);
clearPixel(COORD,8);
clearPixel(COORD+3,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
}
//limpa caractere K
void limpaletraK(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+3,4);
clearPixel(COORD,5);
clearPixel(COORD+2,5);
clearPixel(COORD,6);
clearPixel(COORD+1,6);
clearPixel(COORD,7);
clearPixel(COORD+2,7);
clearPixel(COORD,8);
clearPixel(COORD+3,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere L
void limpaletraL(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD,4);
clearPixel(COORD,5);
clearPixel(COORD,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD,9);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
clearPixel(COORD+4,9);
}
//limpa caractere M
void limpaletraM(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+1,4);
clearPixel(COORD+3,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+2,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere N
void limpaletraN(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+1,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+2,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+3,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere O
void limpaletraO(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere P
void limpaletraP(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD,8);
clearPixel(COORD,9);
}
//limpa caractere Q
void limpaletraQ(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD+1,8);
clearPixel(COORD+2,8);
clearPixel(COORD+3,8);
clearPixel(COORD+3,9);
}
//limpa caractere R
void limpaletraR(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+2,7);
clearPixel(COORD,8);
clearPixel(COORD+3,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere S
void limpaletraS(int COORD)
{
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+1,6);
clearPixel(COORD+2,6);
clearPixel(COORD+3,6);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere T
void limpaletraT(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD+2,4);
clearPixel(COORD+2,5);
clearPixel(COORD+2,6);
clearPixel(COORD+2,7);
clearPixel(COORD+2,8);
clearPixel(COORD+2,9);
}
//limpa caractere U
void limpaletraU(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+4,8);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
}
//limpa caractere V
void limpaletraV(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD+1,6);
clearPixel(COORD+3,6);
clearPixel(COORD+1,7);
clearPixel(COORD+3,7);
clearPixel(COORD+1,8);
clearPixel(COORD+3,8);
clearPixel(COORD+2,9);
}
//limpa caractere X
void limpaletraX(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD+1,4);
clearPixel(COORD+3,4);
clearPixel(COORD+1,5);
clearPixel(COORD+3,5);
clearPixel(COORD+2,6);
clearPixel(COORD+1,7);
clearPixel(COORD+3,7);
clearPixel(COORD+1,8);
clearPixel(COORD+3,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere W
void limpaletraW(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD,5);
clearPixel(COORD+4,5);
clearPixel(COORD,6);
clearPixel(COORD+4,6);
clearPixel(COORD,7);
clearPixel(COORD+2,7);
clearPixel(COORD+4,7);
clearPixel(COORD,8);
clearPixel(COORD+1,8);
clearPixel(COORD+3,8);
clearPixel(COORD+4,8);
clearPixel(COORD,9);
clearPixel(COORD+4,9);
}
//limpa caractere Y
void limpaletraY(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+4,3);
clearPixel(COORD,4);
clearPixel(COORD+4,4);
clearPixel(COORD+1,5);
clearPixel(COORD+3,5);
clearPixel(COORD+2,6);
clearPixel(COORD+2,7);
clearPixel(COORD+2,8);
clearPixel(COORD+2,8);
}
//limpa caractere Z
void limpaletraZ(int COORD)
{
clearPixel(COORD,3);
clearPixel(COORD+1,3);
clearPixel(COORD+2,3);
clearPixel(COORD+3,3);
clearPixel(COORD+4,3);
clearPixel(COORD+3,4);
clearPixel(COORD+2,5);
clearPixel(COORD+2,6);
clearPixel(COORD+2,7);
clearPixel(COORD+1,8);
clearPixel(COORD,9);
clearPixel(COORD+1,9);
clearPixel(COORD+2,9);
clearPixel(COORD+3,9);
clearPixel(COORD+4,9);
}
char palavra[25]=" ARTE , TUDO MENOS ISSO";
int letra;
int caractere;
// the setup routine
void setup()
{
cli();
pinMode (SYNC_PIN, OUTPUT);
pinMode (DATA_PIN, OUTPUT);
digitalWrite (SYNC_PIN, HIGH);
digitalWrite (DATA_PIN, HIGH);
clearScreen();
}
void loop()
{
int COORD;
int num_letras;
for (num_letras=0;num_letras<=23;num_letras++)
{
clearScreen();
for ( COORD=33;COORD>=3;COORD--)
{
// iterate over the lines on the tv
for ( line =0;line< DISPLAY_LINES;++line)
{
// HSync
// front porch (1.5 us)
PORTB = _BLACK;
delayMicroseconds(1.5);
//sync (4.7 us)
PORTB = _SYNC;
delayMicroseconds(4.7);
// breezeway (.6us) + burst (2.5us) + colour back borch (1.6 us)
PORTB = _BLACK;
delayMicroseconds(0.6+2.5+1.6);
//calculate which line to draw to
newLine = line >>4;
delayMicroseconds(1);
//display the array for this line
// a loop would have been smaller, but it messes the timing up
PORTB = frameBuffer[0][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[1][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[2][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[3][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[4][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[5][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[6][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[7][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[8][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[9][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[10][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[11][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[12][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[13][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[14][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[15][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[16][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[17][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[18][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[19][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[20][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[21][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[22][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[23][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[24][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[25][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[26][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[27][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[28][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[29][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[30][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[31][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[32][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[33][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[34][newLine];
delayMicroseconds(1);
PORTB = frameBuffer[35][newLine];
delayMicroseconds(1);
// klugdge to correct timings
PORTB = frameBuffer[36][newLine];
delayMicroseconds(3);
}
//vsync
PORTB = _SYNC;
delayMicroseconds(305); //haver com sync do framebuffer = pesquisar
caractere = palavra[num_letras];
letra = (int)caractere;
switch (letra) {
case 90:
limpaletraZ(COORD+1);
letraZ(COORD);
break;
case 89:
limpaletraY(COORD+1);
letraY(COORD);
break;
case 88:
limpaletraX(COORD+1);
letraX(COORD);
break;
case 87:
limpaletraW(COORD+1);
letraW(COORD);
break;
case 86:
limpaletraV(COORD+1);
letraV(COORD);
break;
case 85:
limpaletraU(COORD+1);
letraU(COORD);
break;
case 84:
limpaletraT(COORD+1);
letraT(COORD);
break;
case 83:
limpaletraS(COORD+1);
letraS(COORD);
break;
case 82:
limpaletraR(COORD+1);
letraR(COORD);
break;
case 81:
limpaletraQ(COORD+1);
letraQ(COORD);
break;
case 80:
limpaletraP(COORD+1);
letraP(COORD);
break;
case 79:
limpaletraO(COORD+1);
letraO(COORD);
break;
case 78:
limpaletraN(COORD+1);
letraN(COORD);
break;
case 77:
limpaletraM(COORD+1);
letraM(COORD);
break;
case 76:
limpaletraL(COORD+1);
letraL(COORD);
break;
case 75:
limpaletraK(COORD+1);
letraK(COORD);
break;
case 74:
limpaletraJ(COORD+1);
letraJ(COORD);
break;
case 73:
limpaletraI(COORD+1);
letraI(COORD);
break;
//case 72:
//limpaletraH(COORD+1);
//letraH(COORD);
//break;
case 71:
limpaletraG(COORD+1);
letraG(COORD);
break;
case 70:
limpaletraF(COORD+1);
letraF(COORD);
break;
case 69:
limpaletraE(COORD+1);
letraE(COORD);
break;
case 68:
limpaletraD(COORD+1);
letraD(COORD);
break;
case 67:
limpaletraC(COORD+1);
letraC(COORD);
break;
case 66:
limpaletraB(COORD+1);
letraB(COORD);
break;
case 65:
limpaletraA(COORD+1);
letraA(COORD);
break;
case 44:
limpaletraEs(COORD+1);
letraEs(COORD);
break;
}
}
}
}