gracias Droky
Hola amigos!No he olvidado este tema sino que he investigado un poco más y ahora posteo con más fundamentos.
ahora estoy trabajando con una herramienta
bitmap2LCD para Generar la imagen en un a tabla de constantes de 1024 bytes en este caso. Lo que equivale cada pantallazo
Estoy usando la version básica sufieciente por estos momentos.
Una vez instalado abrimos el programa y selecionamos el tamaño de nuestro display dando click en LCDmatrix.
La siguiente es la barra de herramientas , el boton que esta encerrado en rojo es el más importante para esto
es para importar la imagen.
Solo importa imagenes bmp y jpeg. Aqui usaré bmp monocromatico porque mi glcd es asi
.
Las demás como un clasico paint, Llenar,linea,circulo,barra,texto,etc..
Hay un boton con la imgen de un ojo , ese s una imagen previa de como se veria en el glcd.
ahora importamos una imagen , si esta es mayor al area que escogimos en LCDmatriz , nos da la opcion de ajustar o dejar tal cual , yo no recomiendo ajustar porque distorciona la imagen,seria mejor que la contrayeran con otro programa y atenerse a los parametos de su glcd , en mi caso 128x64.
Bueno escogemos la imagen y la importamos , y damos Paste (pegar porque sino s epeirde la imagen)en caso de que esto pase , dan click en FILE /Close artwork and table of constants Esto para cargar nuevamente la imagen.
Noten que aparece una nueva Ventana con otras herramientas con nombre File & encoder manager,en ella especificamos como genere el codigo de la imagen.
ya que tenemos nuestra imagen desbes configurar la salida, asi que damos click en FIle/Configurations and preferences
Sale una ventana y para este caso que trabajo con CCS C , genero asi mi tabla de constantes , tiene varias opciones , ahi la que ustedes prefieran o se adapte mejor a su trabajo. Aqui yo le indico que la quiero de la siguiente forma : Constante spro linea = 8 , formato d ela constante 0x+data esto me lo daria en HEX 0x00 0xFF , etc... , Separador de constante " , " Prefijo del comentario " /* */ " , Final de la linea " none " , Extencion del archivo "*.h"
Ahora en la ventana " File & encoder manager "
damos click en
Para generar la tabla , Guardar la tabla , guardar el bmp.
Una vez generada la tabla la guardamos.
Al abrir el archivo con el procesador de texto o el CCS C veremos algo asi :
Aqui les dejo el programa de ejemplo donde guardamos la imagen en el uControlador.
pic18F252 Oscilador HS+PLL
Cristal de 8 MHz
Adjunto código en CCS C, simulacion en Isis proteus e imagenes de muestra xD#include <18F252.h>
#FUSES H4,NOOSCSEN,PUT,BROWNOUT,BORV42,NOWDT,CCP2C1,NOLVP,NODEBUG
#use delay(clock=32M)
#include "HDM64GS12.c"
#include "graphics.c"
//--------
const int8 imagen[64][16] = {
0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF
0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF
0x80 , 0x00 , 0x00 , 0x00 , 0x30 , 0xF8 , 0x00 , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0x3F , 0xDF , 0xF0 , 0x07 , 0x00 , 0x00
0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0x40 , 0x70 , 0x1C , 0x01 , 0x80 , 0x00
0x78 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0x80 , 0x80 , 0x06 , 0x00 , 0xC0 , 0x00
0xCC , 0x41 , 0xC7 , 0x83 , 0x8F , 0x38 , 0xF0 , 0x01
0x80 , 0x01 , 0x01 , 0x80 , 0x03 , 0x80 , 0x40 , 0x01
0x84 , 0x42 , 0x24 , 0x44 , 0x48 , 0x91 , 0x00 , 0x01
0xE0 , 0x01 , 0x07 , 0x80 , 0x00 , 0x78 , 0x40 , 0x03
0x0C , 0x74 , 0x14 , 0x28 , 0x28 , 0x92 , 0x00 , 0x01
0xF0 , 0x02 , 0x1D , 0x00 , 0x00 , 0x24 , 0x20 , 0x02
0x08 , 0x44 , 0x14 , 0x28 , 0x28 , 0x92 , 0x00 , 0x01
0xD0 , 0x02 , 0x32 , 0x00 , 0x00 , 0x33 , 0x20 , 0x06
0x18 , 0x44 , 0x14 , 0x28 , 0x2F , 0x12 , 0x00 , 0x01
0xC8 , 0x04 , 0x67 , 0x81 , 0xC0 , 0x79 , 0x20 , 0x04
0x10 , 0x44 , 0x14 , 0x28 , 0x28 , 0x12 , 0x00 , 0x01
0xCC , 0x04 , 0xC7 , 0xFF , 0xFF , 0xF9 , 0x60 , 0x08
0x30 , 0x42 , 0x24 , 0x44 , 0x48 , 0x11 , 0x00 , 0x01
0xE0 , 0x05 , 0x0F , 0xFF , 0xFF , 0xF9 , 0xC0 , 0x08
0x20 , 0x31 , 0xC7 , 0x83 , 0x88 , 0x38 , 0xF0 , 0x01
0xE2 , 0x05 , 0x0F , 0xFF , 0xFF , 0xFC , 0xC0 , 0x31
0x20 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0xA1 , 0xFE , 0x0F , 0xFF , 0xFF , 0xFC , 0xC3 , 0xE1
0x40 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0xF0 , 0x8E , 0x0F , 0xE5 , 0x29 , 0xFC , 0x02 , 0xC2
0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0xDC , 0x04 , 0x0F , 0xE4 , 0x09 , 0xFC , 0x06 , 0x0E
0x80 , 0x7F , 0xFF , 0xFF , 0xFF , 0xFF , 0xFC , 0x01
0xE0 , 0x44 , 0x0F , 0x60 , 0x01 , 0xB8 , 0x04 , 0x01
0x80 , 0x00 , 0xFF , 0xCF , 0xFF , 0xDF , 0xFC , 0x01
0xB0 , 0x74 , 0x4F , 0x06 , 0x18 , 0x3C , 0x84 , 0x07
0x80 , 0x36 , 0xFF , 0xEF , 0xFF , 0xDF , 0xFC , 0x01
0xB0 , 0x16 , 0x5F , 0xBE , 0x3F , 0x7D , 0x94 , 0x03
0x00 , 0x77 , 0xFF , 0xEF , 0xFF , 0xFF , 0xFC , 0x01
0xB8 , 0x06 , 0x7F , 0xFF , 0xFF , 0xFF , 0x9C , 0x07
0x00 , 0x77 , 0xC7 , 0x0E , 0x21 , 0x9C , 0x7C , 0x01
0x9F , 0x8C , 0x7F , 0xFF , 0xFF , 0xFF , 0x9C , 0x7E
0x00 , 0x77 , 0xBA , 0xED , 0xD6 , 0xDB , 0xBC , 0x01
0x8F , 0x38 , 0x7F , 0xFC , 0x0F , 0xFF , 0x86 , 0x3E
0x00 , 0x77 , 0xBA , 0xED , 0xD6 , 0xDB , 0xFC , 0x01
0x82 , 0xF0 , 0x3F , 0xFD , 0xCF , 0xFF , 0x07 , 0xF0
0x00 , 0x77 , 0xBA , 0xED , 0xD6 , 0xDB , 0xFC , 0x01
0x83 , 0xF8 , 0x1F , 0xFC , 0xCF , 0xFE , 0x07 , 0xF0
0x00 , 0x77 , 0xBA , 0xED , 0xD1 , 0xDB , 0xBC , 0x01
0x83 , 0xFC , 0x1F , 0xC0 , 0x00 , 0xFE , 0x1F , 0xE0
0x00 , 0x63 , 0xC7 , 0x16 , 0x37 , 0x8C , 0x7C , 0x01
0x80 , 0xFE , 0x0E , 0x00 , 0x00 , 0x1C , 0x1F , 0xC0
0x00 , 0x7F , 0xFF , 0xFF , 0xE3 , 0xFF , 0xFC , 0x01
0x80 , 0xFE , 0x07 , 0x00 , 0x00 , 0x78 , 0x3F , 0xC0
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x7F , 0x87 , 0xE0 , 0x03 , 0xF0 , 0x7F , 0x80
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x3F , 0x83 , 0xFF , 0xFF , 0xF0 , 0x7F , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x1F , 0xC3 , 0xFF , 0xFF , 0xF0 , 0xFE , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x0F , 0xE4 , 0xFF , 0xFF , 0x59 , 0xFC , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x07 , 0xE4 , 0x8F , 0x7C , 0x49 , 0xF8 , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x03 , 0xCE , 0x80 , 0x00 , 0x59 , 0xF0 , 0x0F
0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0xCE , 0x00 , 0x00 , 0x1C , 0xC0 , 0x1F
0xFC , 0x21 , 0x00 , 0x00 , 0x1E , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0x8E , 0x00 , 0x00 , 0x1C , 0x40 , 0x1F
0xFC , 0x12 , 0x00 , 0x00 , 0x21 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0xF9 , 0xC0 , 0x00 , 0xC7 , 0xC0 , 0x1F
0xFC , 0x12 , 0x38 , 0x21 , 0x41 , 0x00 , 0x00 , 0x01
0x80 , 0x01 , 0xF1 , 0xFF , 0xFF , 0xC7 , 0xC0 , 0x1F
0xFC , 0x0A , 0x44 , 0x22 , 0x41 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0xF1 , 0xBF , 0xFF , 0x67 , 0xC0 , 0x0F
0xF8 , 0x0C , 0x44 , 0x12 , 0x41 , 0x00 , 0x00 , 0x01
0x80 , 0x00 , 0xFF , 0x00 , 0x00 , 0x37 , 0xC0 , 0x00
0x00 , 0x04 , 0x44 , 0x14 , 0x41 , 0x00 , 0x10 , 0x81
0x80 , 0x00 , 0xFF , 0x00 , 0x00 , 0x7F , 0xC0 , 0x00
0x00 , 0x08 , 0x44 , 0x0C , 0x42 , 0x00 , 0x21 , 0x81
0x80 , 0x01 , 0xFF , 0xC0 , 0x00 , 0xFF , 0xC0 , 0x00
0x00 , 0x08 , 0x38 , 0x08 , 0x3C , 0x00 , 0x41 , 0x81
0x80 , 0x01 , 0xFF , 0xE0 , 0x03 , 0xFF , 0xE0 , 0x00
0x00 , 0x00 , 0x00 , 0x08 , 0x00 , 0x00 , 0x83 , 0x81
0x80 , 0x01 , 0xFF , 0xFE , 0x1F , 0xFF , 0xE0 , 0x00
0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x83 , 0x81
0x80 , 0x01 , 0xFF , 0xFF , 0xFF , 0xFF , 0xE0 , 0x00
0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x87 , 0x81
0x80 , 0x01 , 0xFF , 0xFF , 0xFF , 0xFF , 0xE0 , 0x00
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x87 , 0x81
0x80 , 0x01 , 0xFF , 0xFF , 0xFF , 0xFF , 0xE0 , 0x00
0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x81
0x80 , 0x01 , 0xFF , 0xFF , 0xFF , 0xFF , 0xE0 , 0x01
0x00 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0xC1
0x80 , 0x01 , 0xFF , 0xFF , 0xFF , 0xFF , 0xC0 , 0x01
0x00 , 0x10 , 0x00 , 0x07 , 0xC0 , 0x10 , 0x1F , 0xC1
0x80 , 0x03 , 0xFF , 0xFF , 0xFF , 0xFF , 0xF0 , 0x01
0x00 , 0x10 , 0x00 , 0x18 , 0x30 , 0x00 , 0x1F , 0xC1
0x80 , 0x07 , 0xFF , 0xFF , 0xFF , 0xFF , 0xF8 , 0x01
0x00 , 0x10 , 0x00 , 0x20 , 0x08 , 0x00 , 0x3F , 0xC1
0x80 , 0x0F , 0xFF , 0xFF , 0xFF , 0xFF , 0xF8 , 0x01
0x00 , 0x10 , 0x00 , 0x20 , 0x08 , 0x00 , 0x3F , 0xC1
0x80 , 0x0F , 0xFF , 0xFF , 0xFF , 0xFF , 0xFC , 0x01
0x00 , 0x10 , 0x00 , 0x40 , 0x04 , 0x00 , 0x7F , 0xC1
0x80 , 0x0F , 0xFF , 0xFF , 0xFF , 0xFF , 0xFC , 0x01
0x00 , 0x10 , 0x00 , 0x80 , 0x02 , 0x00 , 0x0F , 0xC1
0x80 , 0x0F , 0xFF , 0xFF , 0xFF , 0xFF , 0xFC , 0x01
0x00 , 0x10 , 0x00 , 0x80 , 0x02 , 0x00 , 0x00 , 0xC1
0x80 , 0x0F , 0xFF , 0xE0 , 0x01 , 0xFF , 0xFC , 0x01
0x00 , 0x18 , 0x00 , 0x80 , 0x03 , 0x80 , 0x80 , 0x01
0x80 , 0x0F , 0xF8 , 0x00 , 0x00 , 0x07 , 0xF8 , 0x00
0xFF , 0xE8 , 0x00 , 0x80 , 0x06 , 0x00 , 0x80 , 0x01
0x80 , 0x0F , 0xF8 , 0x00 , 0x00 , 0x07 , 0xFC , 0x00
0x01 , 0xC9 , 0x1C , 0xF1 , 0xC6 , 0x1C , 0xF0 , 0x01
0x80 , 0x1F , 0xF0 , 0x00 , 0x00 , 0x07 , 0xFE , 0x00
0x00 , 0x2A , 0x22 , 0x90 , 0x3F , 0x02 , 0xC8 , 0x01
0x81 , 0xDF , 0xF0 , 0x00 , 0x00 , 0x03 , 0xFE , 0xC0
0x01 , 0xEC , 0x3E , 0xD1 , 0xE4 , 0x1E , 0x88 , 0x01
0x81 , 0xFF , 0xF8 , 0x00 , 0x00 , 0x07 , 0xFF , 0xE0
0x02 , 0x2C , 0x20 , 0xB2 , 0x2C , 0x22 , 0x88 , 0x01
0x83 , 0xFF , 0xF8 , 0x00 , 0x00 , 0x07 , 0xFF , 0xE0
0x02 , 0x6A , 0x30 , 0xB2 , 0x6C , 0x26 , 0x88 , 0x01
0x83 , 0xFF , 0xF8 , 0x00 , 0x00 , 0x07 , 0xFF , 0xE0
0x01 , 0xE9 , 0x1E , 0x99 , 0xF4 , 0x1E , 0xF0 , 0x01
0x83 , 0xFF , 0xF0 , 0x00 , 0x00 , 0x07 , 0xFF , 0xE0
0x00 , 0x00 , 0x00 , 0x07 , 0xC0 , 0x00 , 0x00 , 0x01
0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF
0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF
};
//-------
void glcd_imagen()
{
char i,j;
signed char k;
for( i = 0 ; i < 64 ; i ++ )
{
for( j = 0 ; j < 16 ; j ++)
{
for(k=7;k>-1;k--)
{
if( bit_test(imagen[i][j] ,7-k ))
glcd_pixel( j*8+k,i, ON );
}
}
}
}
void glcd_imagen_N()
{
char i,j;
signed char k;
for( i = 0 ; i < 64 ; i ++ )
{
for( j = 0 ; j < 16 ; j ++)
{
for(k=7;k>-1;k--)
{
if( bit_test(~imagen[i][j] ,7-k ))
glcd_pixel( j*8+k,i, ON );
}
}
}
}
void main()
{
delay_ms(1000);
glcd_init(ON); // iniciamos la lcd
glcd_fillScreen(0); //LIMPIAMOS LA PANTALLA
while(TRUE){
glcd_imagen();
delay_ms(4000);
glcd_fillScreen(0); //LIMPIAMOS LA PANTALLA
glcd_imagen_N();
delay_ms(4000);
glcd_fillScreen(0); //LIMPIAMOS LA PANTALLA
}
}
VIDEO
Felices Fiestas!