TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: PICYO en 01 de Noviembre de 2010, 07:59:08

Título: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 01 de Noviembre de 2010, 07:59:08

Hola, estoy con mis primeros pasos en una pantalla GLCD, y de momento quiero poner una simple lectura del PIN_A0. Pongo una tension constante de 3 voltios ( por ejemplo) en dicho pin, y quiero que salga por pantalla la medición.

Con LCD's de dos lineas no he tenido problemas, pero con GLCD si. Primero, al usar esta función, he de combertir la lectura ( que la tengo como float) a char. La conversión es correcta, pero ya pasa que la lectura deberia ser no float, sino int16. Pongo float porque la función  de conversión no me deja trabajat con int16 ( mas bien en los parametros no sale nada para int16).

He dicho que la conversion es correcta, porque en efecto puede mostar por pantalla. Pero el valor de tension me sale 0 voltios siempre.

Si pongo solo que lea ( read_adc() ) me sale 153, que es el valor hex. Para hacer una correcta lectura, hago lo siguiente :

tension=5*read_adc()/1024;

Pero la lectura no consigo que me salga correcta
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 01 de Noviembre de 2010, 08:26:29
Hola PICYO, parece que tienes configurada la resolución del adc a 8 bits y en tu código la estás interpretando como si fuese de 10 bits.  Si está a 8 bits y con una alimentación de 3V en el pin entonces:
 
tension=5*read_adc()/256; te daría 2.98 V con un valor en read_adc() de 153.

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 01 de Noviembre de 2010, 08:27:59
perdon he olvidado el codigo :
Código: C
  1. // programa aprendizaje graphical LCD
  2. #include <18f4550.h>
  3.  
  4.  
  5. #use delay(clock=40000000)
  6. #include <HDM64GS12.c>
  7. #include <GRAPHICS.c>
  8. #include <math.h>
  9. #fuses HS,NOWDT, NOPROTECT
  10.  
  11. #byte CMON=0x0FB4  // configuracion  del puerto comparador, AN0 entrada analogica, y referencia interna
  12. #byte TRISA=0xF92
  13.  
  14.  
  15. #ifndef GLCD_WIDTH
  16. #define GLCD_WIDTH   128
  17. #endif
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. void presentacion(void);
  25.  
  26. void main(){
  27.  
  28. float  tension;
  29. char Palabra_Tension[]="Tension: ";
  30. char TensionNumAtexto[4];
  31.  
  32. TRISA=0b11101011;
  33. CMON=0b00000110; // es como usar setup_comparator(A0_VR_A1_VR)
  34.  
  35.  
  36.  
  37. setup_adc_ports(ALL_ANALOG);
  38. setup_adc(ADC_CLOCK_INTERNAL);
  39. set_adc_channel(0);
  40. delay_us(10);
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  //presentacion();
  47.  //glcd_fillScreen(OFF);
  48.  
  49. while(true){
  50. SET_TRIS_A(0xFF);
  51.  
  52. tension=5*read_adc()/1024;
  53. //tension=read_adc();
  54. delay_us(10);
  55.  
  56. glcd_init(ON);
  57. glcd_text57(0,10,Palabra_Tension,1,1);
  58. sprintf(TensionNumAtexto,"%f",tension);// conversion de float  a caracter, ya que la funcion glcd_text75 no permite usar mas que caracteres
  59. glcd_text57(50,10,TensionNumAtexto,1,1);
  60. delay_ms(500);
  61.  
  62.  
  63.  
  64.  
  65.  
  66. }//while
  67.  
  68.  
  69.  
  70. }// main
  71.  
  72.  
  73.  
  74.  
  75.  
  76. //////////  cuerpo funciones //////////////////////////////////////////
  77. /////////////////////////////////////////////////////////////////////////
  78. void presentacion(){
  79. char fraseBienvenida[]="Bienvenido,";
  80. char Guindous[]="Guindous";
  81. int x;
  82. glcd_init(ON);
  83. glcd_text57(33,30,fraseBienvenida,1,1);
  84. glcd_rect(33, 50, 93, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color
  85.    for (x=0;x<=60;x++){
  86.    glcd_rect(33, 50, 33+x, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color)
  87.    delay_ms(5);
  88.    }
  89. glcd_fillScreen(OFF);
  90. glcd_text57(0,10,Guindous,3,1);
  91. delay_ms(1000);
  92. }
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 01 de Noviembre de 2010, 08:33:37
Hola bmb!
Si, haciendo ese calculo con 256 salen practicamente los 3 voltios que meto. pero Al poner la linea:

tension=5*read_adc()/256;

me salen de nuevo 0 voltios. Si hacemos el calculo nosotros, es correcto, pero en programa no sale bien. Creo que es un problema de compatibilidad de tipos, con la funcion fprintf y/o glcd_text57, ya que salen 0 voltios ( 0,0)
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 01 de Noviembre de 2010, 09:33:48
Hola PICYO, si quieres trabajar el adc a 10 bits pones esta directiva: #device adc=10.  También veo que te faltan unos fuses importantes: NOLVP y NOPBADEN.  Tampoco deberías activar todas las entradas análogas, sino solamente las que vayas a usar, por ejemplo: setup_adc_ports(AN0|VSS_VDD);
Como lo que devuelve read_adc() es un valor entero de 10 bits, la variable tension la deberías configurar como: long tension;
Desafortunadamente no conozco el uso de las instrucciones para el GLCD, asi que no se si están bien, pero dando un poco de orden a lo que tienes y comentando algunas instrucciones que no les veo uso por ahora, te sugeriría:

Código: [Seleccionar]
#include <18F4550.h>
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV28                   //Brownout reset at 2.8V
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOCPD                    //No EE protection
#FUSES NOSTVREN                 //Stack full/underflow will not cause reset
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOIESO                   //Internal External Switch Over mode disabled
#FUSES NOFCMEN                  //Fail-safe clock monitor disabled
#FUSES NOPBADEN                 //PORTB pins are configured as digital I/O on RESET
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads
#FUSES NOCPB                    //No Boot Block code protection
#FUSES MCLR                     //Master Clear pin enabled
#FUSES NOLPT1OSC                //Timer1 configured for higher power operation
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL1                     //No PLL PreScaler
#FUSES CPUDIV1                  //No System Clock Postscaler
#FUSES NOUSBDIV                 //USB clock source comes from primary oscillator
#FUSES NOVREGEN                 //USB voltage regulator disabled
#FUSES NOICPRT                  //ICPRT disabled

#use delay(clock=40000000)

#include <HDM64GS12.c>
#include <GRAPHICS.c>
#include <math.h>

// #byte CMON=0x0FB4  // configuracion  del puerto comparador, AN0 entrada analogica, y referencia interna
// #byte TRISA=0xF92

#ifndef GLCD_WIDTH
#define GLCD_WIDTH   128
#endif

void presentacion(void);

void main()
{
   long tension;
   char Palabra_Tension[]="Tension: ";
   char TensionNumAtexto[4];
   
   setup_adc_ports(AN0|VSS_VDD);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_wdt(WDT_OFF);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);   

//   TRISA=0b11101011;
//   CMON=0b00000110; // es como usar setup_comparator(A0_VR_A1_VR)

   set_adc_channel(0);
   delay_us(10);
   
   //presentacion();
   //glcd_fillScreen(OFF);
   
   while(true)
   {
      tension=5*read_adc()/1024;
//    tension=read_adc();
      delay_us(10);
      glcd_init(ON);
      glcd_text57(0,10,Palabra_Tension,1,1);
      sprintf(TensionNumAtexto,"%lu",tension);   // conversion de long  a caracter, ya que la funcion glcd_text75 no permite usar mas que caracteres
      glcd_text57(50,10,TensionNumAtexto,1,1);
      delay_ms(500);
   }
}

//////////  cuerpo funciones //////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
void presentacion()
{
   char fraseBienvenida[]="Bienvenido,";
   char Guindous[]="Guindous";
   int x;

   glcd_init(ON);

   glcd_text57(33,30,fraseBienvenida,1,1);
   glcd_rect(33, 50, 93, 55, NO, ON);  //glcd_rect(x1, y1, x2, y2, fill, color   
   for (x=0;x<=60;x++)
   {
      glcd_rect(33, 50, 33+x, 55, NO, ON);  //glcd_rect(x1, y1, x2, y2, fill, color)   
      delay_ms(5);   
   }
   glcd_fillScreen(OFF);
   glcd_text57(0,10,Guindous,3,1);
   delay_ms(1000);
}

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 01 de Noviembre de 2010, 16:12:52
Hola!
Bueno he visto que el pic 18F4550 solo trabaja con 10 bits en la conversión. he cambiado tal como me has dicho y he visto una mejora : 2 voltios, pero no me escribe los 3. Creo que seria mejor trabajar con otra librería, porqué el hecho que para escribir no me deje mas que tratar por caracteres ( hacer la conversión a char de todo lo que quiera) es bastante incómodo. Con la librería lcd.h ( usualmente para displays de 2 lineas) ese problema no está. Probaré con esta librería, a ver. De todos modos, se ha de cargar la de glcd por los drivers, y para modo presentación ( es cómodo dibujar pixel a pixel, pero no escribir texto). Probaré esa alternativa a ver que tal. De todos modos, si alguien usa normalmente esta librería, que me diga si realmente vale la pena calentarse el cerebro o usar otra ( probare LCD.h)
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 01 de Noviembre de 2010, 18:02:58
Estuve leyendo la librería del GLCD y no hay problema con eso.  En realidad el programa está funcionando bien y ahora veo por que la variable tension era inicialmente de tipo float.  Pásala de nuevo a float: float tension; y char TensionNumAtexto[10]; para que tenga capacidad de almacenar los decimales.  Luego cambias esta instrucción:
Código: [Seleccionar]
tension=5*read_adc()/1024; por esta:
Código: [Seleccionar]
tension=5.0*(float)read_adc()/1024.0;Lo anterior se llama 'type casting' y es para que toda la operación sea de tipo float.  Finalmente cambias esta instrucción:
Código: [Seleccionar]
sprintf(TensionNumAtexto,"%lu",tension);  por esta:
Código: [Seleccionar]
sprintf(TensionNumAtexto,"%f",tension);
Saludos!

Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 02 de Noviembre de 2010, 14:18:35
Si, con int no se puede porqué ( al menos en CCS) int es una palabra de 8 bits ( lo mismo que int8...que no sé por qué existe esa variable), y el DAC es de 10 bits. Entonces traté de usar int16 ( la verdad, ví que lo usaba la gente y me pareció lógico). Pero esa dichosa función de conversión no se tragaba los int16, por eso puse float. Ahora bien, lo que has hecho es lo que me sonaba que debia hacer, porque hace unos dias vi por ahí esa función de Visual C++ ( o de C++) que es safe_cast<tipo>, pero no me acordaba como coñe se hacia esto en C :D. De todos modos, no tenía puesto ponerla ahí. creía que podría hacer la conversión a tensión, después de hacer el read(). Me ha gustado mucho así como lo has hecho tú, hacer la conversión de tipo y la lectura  en una misma acción. ¡ Grácias!

Ahora para jugar con el lcd, trataré de bajrme algún programa ( gratuito o demo, si los hay) que te convierte a mapa de caracteres, y te lo pasa a hexadecimal, para poder poner una pantalla de presentación digna ( o un cuadro de botones o o que sea). Ya lo subiré por aquí. Supongo que ya estará esto por este foro, pero ya que está este hilo abierto, pues aprobecho y lo pongo aquí también.
hasta luego!

Por cierto, si, la lectura es correcta, falla quizas en la precisión de 0,01, quizas sea por ( según he leido) al usar el temporizador interno, da alguna inestabilidad o inexactitud en los 2 bms ( he de leerlo mejor). Como solución algo "cutre" he puesto a la función una suma de 0,01... y ya está. Sólo fallará cuando la entrada sean 0 voltios, el LCD me mostrará 0.01, cuando sean 0 "reales" y 0.01 también "reales". Podría hacer una medición previa, y ver el número hexadecimal que saca el DAC. Desde ése número puedo saber si la medida real es 0 ó 0.01
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 02 de Noviembre de 2010, 15:14:44
Por aqui por el foro creo que anda un programa de conversión que se llama GCLCD.  También en internet puedes encontrar varios gratuitos como por ejemplo el FastLCD.

La verdad yo no me preocuparía por un error de 0.01 Voltios, ya que 1/100 de voltio de error se puede ver por muchas razones, entre ellas que por ejemplo tu voltímetro tenga ese error, o que por la resolución del ADC no puedas conseguir más precisión (aunque en teoría con 10 bits y Vref de 5V si deberías tener una precisión de 1/100 de Voltio).

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 02 de Noviembre de 2010, 15:27:47

Hola! Probaré esos programas, he encontrado uno peor no me deja hacer escala de grises ( demo), y estoy viendo cómo meter la matriz que me ha generado. pero probaré todos estos que me dices, a ver que tal van. Bueno, eso ya mañana, que el cuerpo después de un dia de curro y aqui un rato, me pide descanso :)
Mañana te digo que tal me va.
Hasta luego!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 02 de Noviembre de 2010, 17:59:51
Al usar alguno de estos programas te genera un archivo con unos valores hexadecimales.  Algunos de esos programas generan directamente un archivo .h para CCS y si no, lo más práctico poner los números generados en un archivo por ejemplo: dibujo.h asi:
Código: [Seleccionar]
CONST BYTE dibujo [8192] = {0x01,0x01,0x01,0x01,0x00,0x01,0x00, .........................0x01};El tamaño del array (en el ejemplo para pantalla de 128 x 64 = 8192) lo cambias de acuerdo al tamaño del array generado.  Después, en el programa donde van los includes pones uno asi: #include "dibujo.h" y luego dependiendo del tamaño de la pantalla puedes insertar un código más o menos así (ej. pantalla de 128 x 64):

Código: [Seleccionar]
  long pix = 0;
   int x, y;

   glcd_fillScreen(OFF);              // Borrar la pantalla

   for (y=0; y<64; y++)
   {
      for (x=0; x<128; x++)
      {
         glcd_pixel(x, y, dibujo[pix]);
         pix++;
      }
   }

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 04 de Noviembre de 2010, 14:18:19

Hola!

Bueno respecto los programas, he encontrado solo 3, uno de ellos me saca funciones y todo, en un codigo C ( las funciones las borro y cambio la extensión a .h). Pero el programa al ser demo, no me deja ver nada... no se donde esta la demo... porque ni visualmente puedo ver nada, y la matriz está a cero.
Luego he visto un programa bastante majo, de MicroElectronica. Pero al dibujar ( hago el procdimiento que me dices) no se dibuja nada, sólo se ven puntitos. La culpa, e sque lo hacen en un string  de 1024 caracteres, no de 8192. Ahora si que estoy perdido...

Código: C
  1. // ------------------------------------------------------
  2. // GLCD Picture name: logo_guindous.bmp
  3. // GLCD Model: KS0108 128x64            
  4. // ------------------------------------------------------  
  5.  
  6. unsigned char const logo_guindous_bmp[1024] = {
  7.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  8.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  9.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,248,140,172, 68,172,  4,
  10.  172, 68,172,  4,172, 68,172,  4,172, 68,252,  0,  8,254,172, 24,
  11.  176, 96,192,192,136,128,128,  0,128,  0,  0,  0,  8,  0,  0,  0,
  12.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  13.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  14.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  15.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  16.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  17.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  7,126,100,106, 32,
  18.  170, 32, 42, 32, 42, 36, 42, 32,170, 96, 95,112,104,  0,  3, 14,
  19.  154,  8, 10,  8, 10, 12, 10,  9,139,  9, 11,  9, 11, 13,  7,  7,
  20.  131,  3,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  21.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  22.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  23.  128,  0,  0,  0,  8,240,144,144,240,  0,192,  0,200, 64, 64, 64,
  24.  128,120,192,192,120, 16,  0,192, 64, 64, 64,192,136,  0,  0,  0,
  25.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,254,170,  2,
  26.  171, 65,171,  1,171, 69,171,  1,171, 65,171,  1,255,  0,  0,  3,
  27.  255,193,171,  1,171, 69,171,  1,171, 65,171,  1,171, 69,171,255,
  28.  131,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  29.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  30.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  31.  128,  0,  0,192,232,231,224,224,224,224,231,224,239,228,228, 68,
  32.  128,  0,  1,143,200,128,  0,  7,133,  4,  5,  6,207,224,192,128,
  33.  128,  0,  0,224,232,224,  0,  0,128,  0,  0,  0,  8, 15, 14,  6,
  34.  130,  2,  2,  2, 10,  2,  2,  2,130,  2,  2,  2, 15,  6,  4,  0,
  35.  131,  1,  1,249,253,249,  1,  1,129,  1,  1,  1,137,193,193,193,
  36.  192,192,192,128,  8,  0,  0,  0,128,  0,128,128,  8,  0,  0,  0,
  37.  128,  0,  0,  0,136,128,  0,  0,128,128,128,128,136,128,128,128,
  38.  128,128,128,128,136,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  39.  128,  0,  0,255,255,255,  0,  0,128,  0,  0,  0,  8,  0,  0,128,
  40.  128,128,  0,225,233,225,  0,  0,128,  0,  0,  0,  8,225,225,225,
  41.  128,  0,  0,249,249,249,  0,  0,252,254,252,248,252, 30, 15,  7,
  42.  131,  3,  7, 15,254,252,224,  0,128,  0,240,248, 62, 30,  7,  7,
  43.    7,  7,  7,255,255,255,  0,  0,240,252,255, 31,  7,  3,  1,  1,
  44.    1,  1,  3,  7, 31,254,252,240,128,  0,255,255,  8,  0,  0,  0,
  45.  128,  0,  0,  0,255,255,  0,  0,191,127,243,225,201,129,129,129,
  46.  129,  1,  1,  3, 15,  7,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  47.  128,  0,  0,255,255,255,  7,  7,  7,  7,  7,  7,  7,  7,255,255,
  48.  255,  3,  1,255,255,255,  0,  0,128,  0,  0,  0,  8,255,255,255,
  49.  128,  0,  0,255,255,255,  0,  0,255,255,255,  1,  8,  0,  0,  0,
  50.  128,  0,  0,  0,255,255,255,  0,128,  0,255,255,  0,  0,  0,  0,
  51.    0,  0,  0,255,255,255,  0,  1,191,255,253,224,128,  0,  0,  0,
  52.    0,  0,  0,128,224,255,255, 63,128,  0,127,255,232,128,  0,  0,
  53.  128,  0,  0,192,255,255,  0,  0,128,  0,  0,  1,  9,  1,  1,  3,
  54.  131,  3,  7,255,254,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  55.  128,  0,  0,  3, 15,  7,  7,  7,135,  7,  7,  7, 15,  7,  7,  7,
  56.  131,  0,  0,  3, 15,  7,  7,  7,135,  7,  7,  7, 15,  7,  7,  3,
  57.  128,  0,  0,  7, 15,  3,  0,  0,131,  3,  3,  0,  8,  0,  0,  0,
  58.  128,  0,  0,  0, 15,  7,  7,  0,128,  0,  3,  7, 15,  6,  6,  6,
  59.  134,  6,  7,  7, 15,  7,  0,  0,128,  0,  3,  3, 15, 15, 14, 14,
  60.  142, 14, 15,  7, 11,  1,  0,  0,128,  0,  0,  1, 11,  7,  7,  6,
  61.  134,  6,  6,  7, 15,  0,  0,  0,128, 12, 12, 12, 12, 12, 12, 12,
  62.  140, 14, 15,  7, 11,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  63.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  64.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  65.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  66.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  67.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  68.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  69.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0,
  70.  128,  0,  0,  0,  8,  0,  0,  0,128,  0,  0,  0,  8,  0,  0,  0
  71. };
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 04 de Noviembre de 2010, 19:38:52
Hola PICYO, dale una mirada a este enlace: http://www.todopic.com.ar/foros/index.php?topic=23122.msg196343#msg196343

Allí explican como puedes poner un archivo de imagen en el LCD gráfico y hay un enlace a un programa para esto.

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 05 de Noviembre de 2010, 16:56:22
Hola bmb!
Si, vi ese enlace ayer, y ahora estaba con ello. Lo que no se si es a mi..pero los pantallazos que pega el autor hay algunos que no los veo, y hay menus que no me salen. El programa esta muy bien, pero estoy en ello...en el punto "pegar imagen" ya no me deja. en fin
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 08 de Noviembre de 2010, 14:17:45
Hola bmb! La verdad, prefiero probar con este programa, como el resto de gente. Al final ya conseguí sacar el código, aunque he cambiado a int8 el tipo de variable ( siguiendo las indicaciones del otro hilo), y además he puesto una variable estilo :

const int8 variable[120][64]={};

Bueno paso el código creado, y modificado:
el main()
Código: C
  1. // programa aprendizaje graphical LCD
  2. #include <18f4550.h>
  3. #device adc=10
  4.  
  5. #use delay(clock=40000000)
  6. #include <HDM64GS12.c>
  7. #include <GRAPHICS.c>
  8. #include <math.h>
  9. #include <lcd.c>
  10. #include <NewBitmap.h>
  11. #fuses HS,NOWDT, NOPROTECT,NOPROTECT,NOLVP,NODEBUG
  12.  
  13.  
  14.  
  15. #ifndef GLCD_WIDTH
  16. #define GLCD_WIDTH   128
  17. #endif
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. void presentacion(void);
  25.  
  26.  
  27. void main(){
  28.  
  29.  
  30.  
  31. float  tension;
  32. char Palabra_Tension[]="Tension: ";
  33. char TensionNumAtexto[7];
  34. long pix1 = 0,pix2=0;
  35. int x, y;
  36.  
  37. //TRISA=0b11101011;
  38. //CMON=0b00000110; // es como usar setup_comparator(A0_VR_A1_VR)
  39.  
  40.  
  41.  
  42. setup_adc_ports(AN0|VSS_VDD);
  43. setup_adc(ADC_CLOCK_INTERNAL);
  44. set_adc_channel(0);
  45.  
  46.  
  47. presentacion();
  48.  
  49. glcd_fillScreen(OFF);              // Borrar la pantalla
  50.  
  51. while(1){
  52. for (x=0; x<128; x++)
  53.    {
  54.  
  55.       for(y=0;y<64;y++){
  56.  
  57.          glcd_pixel(x, y,NewBitmap[pix1][pix2]);
  58.          pix1++;
  59.          pix2++;
  60.          delay_ms(1000);
  61.          }
  62.  
  63.    }
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. while(true){
  74. //SET_TRIS_A(0xFF);
  75. tension=(5.0*(float)read_adc()/1024.0);
  76. glcd_init(ON);
  77. glcd_text57(0,10,Palabra_Tension,1,1);
  78. sprintf(TensionNumAtexto,"%f",tension);// conversion   a caracter, ya que la funcion glcd_text75 no permite usar mas que caracteres
  79. glcd_text57(50,10,TensionNumAtexto,1,1);
  80. delay_ms(1000);
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90. }//while
  91.  
  92.  
  93.  
  94. }// main
  95.  
  96.  
  97.  
  98.  
  99.  
  100. //////////  cuerpo funciones //////////////////////////////////////////
  101. /////////////////////////////////////////////////////////////////////////
  102. void presentacion(){
  103. char fraseBienvenida[]="Bienvenido,";
  104. char Guindous[]="Guindous";
  105. int x;
  106. glcd_init(ON);
  107. glcd_text57(33,30,fraseBienvenida,1,1);
  108. glcd_rect(33, 50, 93, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color
  109.    for (x=0;x<=60;x++){
  110.    glcd_rect(33, 50, 33+x, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color)
  111.    delay_ms(5);
  112.    }
  113. glcd_fillScreen(OFF);
  114. glcd_text57(0,10,Guindous,3,1);
  115. delay_ms(1000);
  116. }

el archivo de la imagen :
Código: C
  1. /* Data generated with bitmap2LCD V1.8 (D)*/
  2. /* 08/11/2010 17:53:29 */
  3. /* Bitmap Source file : NewBitmap.bmp */
  4. /* Byte width format is 8 bit  */
  5.  
  6. //#include <avr/pgmspace.h>
  7.  
  8. const int8  NewBitmap [128][64] = {
  9.  
  10.  
  11.  
  12.  
  13.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  14.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  15.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  16.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  17.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x09
  18.  0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  19.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x3F
  20.  0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  21.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x7F
  22.  0x7F , 0xFE , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  23.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x7F
  24.  0x7F , 0xFF , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  25.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x7F
  26.  0x7F , 0xFF , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  27.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x7E
  28.  0x7F , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  29.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFE
  30.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  31.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFE
  32.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  33.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFC
  34.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  35.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFD
  36.  0xFF , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  37.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x79 , 0xF9
  38.  0xFF , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  39.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x79 , 0xF3
  40.  0xFF , 0xC3 , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  41.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x7B , 0xF7
  42.  0xFF , 0xC3 , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  43.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xFB , 0xE7
  44.  0xFF , 0xCB , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  45.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xF3 , 0xFF
  46.  0xFF , 0xCB , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  47.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xF3 , 0xFF
  48.  0xFF , 0xE3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  49.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF , 0xFF
  50.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  51.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xC1 , 0xFF
  52.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  53.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xFF
  54.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  55.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x23 , 0xFF
  56.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  57.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xC3 , 0xFC
  58.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  59.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0xC7 , 0xFF
  60.  0x1F , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  61.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0xC7 , 0xFF
  62.  0x07 , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  63.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x87 , 0xFF
  64.  0x01 , 0xFF , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  65.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF
  66.  0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  67.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF
  68.  0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  69.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF
  70.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  71.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x0F , 0xFF
  72.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  73.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x1F , 0xFF
  74.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  75.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x1F , 0xFF
  76.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  77.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x1F , 0xFF
  78.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  79.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x3F , 0xFF
  80.  0xFF , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  81.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x3F , 0xFF
  82.  0xFF , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  83.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1C , 0x3F , 0xFF
  84.  0xFF , 0xFF , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  85.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0x37 , 0xFF
  86.  0xFF , 0xFE , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  87.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3E , 0x03 , 0xFF
  88.  0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  89.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x36 , 0x00 , 0x7F
  90.  0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  91.  0x00 , 0x00 , 0x00 , 0x1C , 0x00 , 0x2C , 0x00 , 0x3F
  92.  0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  93.  0x00 , 0x00 , 0x00 , 0x1E , 0x00 , 0x7C , 0x00 , 0x07
  94.  0xFF , 0xC0 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  95.  0x00 , 0x00 , 0x00 , 0x0F , 0x00 , 0xF8 , 0x00 , 0x07
  96.  0xFF , 0x01 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  97.  0x00 , 0x00 , 0x00 , 0x07 , 0x87 , 0xE0 , 0x00 , 0x01
  98.  0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  99.  0x00 , 0x00 , 0x00 , 0x03 , 0xFF , 0x80 , 0x00 , 0x00
  100.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  101.  0x00 , 0x00 , 0x00 , 0x01 , 0xFE , 0x00 , 0x00 , 0x00
  102.  0x0F , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  103.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  104.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  105.  0x00 , 0x0C , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00
  106.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  107.  0x3F , 0xCC , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00
  108.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  109.  0x3F , 0xCC , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00
  110.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  111.  0x30 , 0x00 , 0x00 , 0x00 , 0x00 , 0x19 , 0xC0 , 0x00
  112.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  113.  0x30 , 0x00 , 0x00 , 0xCE , 0xF8 , 0x7D , 0xC3 , 0xE0
  114.  0x00 , 0x01 , 0xFA , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  115.  0x30 , 0x0C , 0x0C , 0xCF , 0xFC , 0xFF , 0xCF , 0xF0
  116.  0x60 , 0xC3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  117.  0x30 , 0x0C , 0x0C , 0xCF , 0x1C , 0xE3 , 0xCE , 0x38
  118.  0x60 , 0xC3 , 0x0C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  119.  0x30 , 0x0C , 0x0C , 0xCE , 0x1C , 0xE1 , 0xDC , 0x18
  120.  0x60 , 0xC3 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  121.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C
  122.  0x60 , 0xC3 , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  123.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C
  124.  0x60 , 0xC3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  125.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C
  126.  0x60 , 0xC1 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  127.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xC1 , 0xDC , 0x1C
  128.  0x60 , 0xC0 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  129.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xE3 , 0xCC , 0x38
  130.  0x31 , 0x80 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  131.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xF7 , 0xCF , 0x78
  132.  0x3F , 0x87 , 0x0C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  133.  0x3F , 0xCF , 0xFC , 0xCE , 0x1C , 0x7D , 0xC7 , 0xF0
  134.  0x1F , 0x03 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  135.  0x3F , 0xCF , 0xFC , 0xCE , 0x1C , 0x39 , 0xC3 , 0xC0
  136.  0x0E , 0x01 , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  137.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  138.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  139.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  140.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00  0x00
  141. };
  142. /******************/
  143. /* 1024 Bytes */
  144. /* End of LCD Pattern  */
  145. /* Save table and see info file C:\Proyectos\GLCD\logos\NewBitmap.doc */

Bueno, cuando pongo la imágen, hay un bucle while infinito, que hace que no entre en el siguiente bucle. Lo he hecho a sabiendas, para que no dejase de ejecutar la imagen. Pero no funciona, sigo viéndolo todo en blanco...??¿?¿?
Ahjora ya si que es problema de programación, del main, supongo.
Da igual si lo pongo en un array de una dimensión ? Eso es algo que no entiendo por que se puede hacer de dos modos.
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 08 de Noviembre de 2010, 14:29:23
Hola PICYO te estoy adjuntando una imagen simple para que hagas la prueba como te había comentado en el post anterior y compruebes si está funcionando.

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 08 de Noviembre de 2010, 14:52:09

Pues sale en blanco, del mismo modo que antes. Una pregunta: No entiendo muy bien cuando me dices que haga esto :
Código: C
  1. glcd_pixel(x, y, PICYO[pix1]);

Según la libreria, deberia usarlo del modo :
Código: C
  1. glcd_pixel(x,y,color) ;

Donde color es TRUE o FALSE. AL haber un pixel "activo", es lo mismo que en ese momento, poner TRUE?
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 08 de Noviembre de 2010, 14:56:01
espera espera!
que me habia dejado de descomentar una linea!!
Si que ha funcionado !
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 08 de Noviembre de 2010, 15:10:53

aunque en el otro codigo no, pero veo que está generada de distinta forma la matriz, o bueno, el array mejor dicho. ¿ Cómo hjas asignado las líneas ? ( los parámetros al generarlo)
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 08 de Noviembre de 2010, 16:24:31
Son métodos similares pero con matrices diferentes.  La verdad es que no he intentado con el otro método, porque como te conté fué hace ya algunos años que hice este circuito con la pantalla glcd y ya no dispongo de una para hacer pruebas.  El software era gratuito y se llamaba ImageDesigner de la empresa Picmodules por si te animas a buscarla en algún sitio en internet.

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 09 de Noviembre de 2010, 14:59:22

Bueno, da igual. De hecho, ya tengo este para que me cree esa matriz ( o array mejor dicho), y lo he hecho de nuevo, de modo array unidimensional, y no sale nada. Tiene que ver la velocidad? Bueno , eso si es asi, pero vamos...probando todos los valores de cristal no me aparece mi logotipo, sin mebargo el tuyo funciona bien ( el de PICYO que em enviaste). Modifiqué tu imagen que em enviaste, para comprobar si el espacio en el array afecta, o sea, si afecta esto:

CASO 1)

const byte Caso1[]={
0x00,0x03,0x06,
0x00,0x03,0x06,
0x00,0x03,0x06
};


CASO 2)
const byte Caso1[]={
0x00,0x03,0x06,0x00,0x03,0x06,
0x00,0x03,0x06
};

ambos casos me esccribian la palabra PICYO que em enviaste, por lo tanto, no modifiqué mi logo. Por supuesto, tampoco ha ido bien:
Código: C
  1. CONST BYTE logo[8192]={
  2.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  3.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  4.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  5.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  6.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x09,
  7.  0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  8.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x3F,
  9.  0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  10.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x7F,
  11.  0x7F , 0xFE , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  12.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x7F,
  13.  0x7F , 0xFF , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  14.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x7F,
  15.  0x7F , 0xFF , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  16.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x7E,
  17.  0x7F , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  18.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFE,
  19.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  20.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFE,
  21.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  22.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFC,
  23.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  24.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0xFD,
  25.  0xFF , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  26.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x79 , 0xF9,
  27.  0xFF , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  28.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x79 , 0xF3,
  29.  0xFF , 0xC3 , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  30.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x7B , 0xF7,
  31.  0xFF , 0xC3 , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  32.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xFB , 0xE7,
  33.  0xFF , 0xCB , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  34.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xF3 , 0xFF,
  35.  0xFF , 0xCB , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  36.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xF3 , 0xFF,
  37.  0xFF , 0xE3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  38.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF , 0xFF,
  39.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  40.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xC1 , 0xFF,
  41.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  42.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xFF,
  43.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  44.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x23 , 0xFF,
  45.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  46.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0xC3 , 0xFC,
  47.  0xFF , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  48.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0xC7 , 0xFF,
  49.  0x1F , 0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  50.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0xC7 , 0xFF,
  51.  0x07 , 0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  52.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x87 , 0xFF,
  53.  0x01 , 0xFF , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  54.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF,
  55.  0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  56.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF,
  57.  0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  58.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 , 0x8F , 0xFF,
  59.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  60.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x0F , 0xFF,
  61.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  62.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x1F , 0xFF,
  63.  0xFF , 0xFF , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  64.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x1F , 0xFF,
  65.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  66.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E , 0x1F , 0xFF,
  67.  0xFF , 0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  68.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x3F , 0xFF,
  69.  0xFF , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  70.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x3F , 0xFF,
  71.  0xFF , 0xFF , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  72.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1C , 0x3F , 0xFF,
  73.  0xFF , 0xFF , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  74.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3C , 0x37 , 0xFF,
  75.  0xFF , 0xFE , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  76.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3E , 0x03 , 0xFF,
  77.  0xFF , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  78.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x36 , 0x00 , 0x7F,
  79.  0xFF , 0xF8 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  80.  0x00 , 0x00 , 0x00 , 0x1C , 0x00 , 0x2C , 0x00 , 0x3F,
  81.  0xFF , 0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  82.  0x00 , 0x00 , 0x00 , 0x1E , 0x00 , 0x7C , 0x00 , 0x07,
  83.  0xFF , 0xC0 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  84.  0x00 , 0x00 , 0x00 , 0x0F , 0x00 , 0xF8 , 0x00 , 0x07,
  85.  0xFF , 0x01 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  86.  0x00 , 0x00 , 0x00 , 0x07 , 0x87 , 0xE0 , 0x00 , 0x01,
  87.  0xE0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  88.  0x00 , 0x00 , 0x00 , 0x03 , 0xFF , 0x80 , 0x00 , 0x00,
  89.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  90.  0x00 , 0x00 , 0x00 , 0x01 , 0xFE , 0x00 , 0x00 , 0x00,
  91.  0x0F , 0xC0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  92.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  93.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  94.  0x00 , 0x0C , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00,
  95.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  96.  0x3F , 0xCC , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00,
  97.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  98.  0x3F , 0xCC , 0x0C , 0xC0 , 0x00 , 0x01 , 0xC0 , 0x00,
  99.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  100.  0x30 , 0x00 , 0x00 , 0x00 , 0x00 , 0x19 , 0xC0 , 0x00,
  101.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  102.  0x30 , 0x00 , 0x00 , 0xCE , 0xF8 , 0x7D , 0xC3 , 0xE0,
  103.  0x00 , 0x01 , 0xFA , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  104.  0x30 , 0x0C , 0x0C , 0xCF , 0xFC , 0xFF , 0xCF , 0xF0,
  105.  0x60 , 0xC3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  106.  0x30 , 0x0C , 0x0C , 0xCF , 0x1C , 0xE3 , 0xCE , 0x38,
  107.  0x60 , 0xC3 , 0x0C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  108.  0x30 , 0x0C , 0x0C , 0xCE , 0x1C , 0xE1 , 0xDC , 0x18,
  109.  0x60 , 0xC3 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  110.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C,
  111.  0x60 , 0xC3 , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  112.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C,
  113.  0x60 , 0xC3 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  114.  0x3F , 0xCC , 0x0C , 0xCE , 0x1D , 0xC1 , 0xDC , 0x1C,
  115.  0x60 , 0xC1 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  116.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xC1 , 0xDC , 0x1C,
  117.  0x60 , 0xC0 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  118.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xE3 , 0xCC , 0x38,
  119.  0x31 , 0x80 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  120.  0x30 , 0xCC , 0x0C , 0xCE , 0x1C , 0xF7 , 0xCF , 0x78,
  121.  0x3F , 0x87 , 0x0C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  122.  0x3F , 0xCF , 0xFC , 0xCE , 0x1C , 0x7D , 0xC7 , 0xF0,
  123.  0x1F , 0x03 , 0xFC , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  124.  0x3F , 0xCF , 0xFC , 0xCE , 0x1C , 0x39 , 0xC3 , 0xC0,
  125.  0x0E , 0x01 , 0xF0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  126.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  127.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  128.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  129.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  130.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  131.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  132.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  133.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  134.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  135.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  136.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  137.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  138.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  139.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  140.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  141.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  142.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  143.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  144.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  145.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  146.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  147.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  148.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  149.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  150.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  151.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  152.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  153.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  154.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  155.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  156.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  157.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  158.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  159.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  160.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  161.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  162.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  163.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  164.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  165.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  166.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  167.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  168.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  169.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  170.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  171.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  172.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  173.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  174.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  175.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  176.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  177.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  178.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  179.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  180.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  181.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  182.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  183.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  184.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  185.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  186.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  187.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  188.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  189.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  190.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  191.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  192.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  193.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  194.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  195.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  196.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  197.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  198.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  199.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  200.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  201.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  202.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  203.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  204.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  205.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  206.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  207.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  208.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  209.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  210.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  211.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  212.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  213.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  214.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  215.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  216.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  217.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  218.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  219.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  220.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  221.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  222.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  223.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  224.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  225.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  226.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  227.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  228.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  229.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  230.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  231.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  232.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  233.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  234.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  235.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  236.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  237.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  238.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  239.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  240.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  241.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  242.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  243.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  244.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  245.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  246.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  247.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  248.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  249.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  250.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  251.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  252.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  253.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  254.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  255.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  256.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00,
  257.  0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
  258. };
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 09 de Noviembre de 2010, 17:55:14
Lo que veo en este último array es que los valores no son unos y ceros como en el que te envié (blanco y negro), sino que posiblemente se trate de una imagen en color.  Tu pantalla es en color?, porque no he hecho el intento en una en color hasta ahora.  Los ensayos y los arreglos generados por el programa que te envié son en blanco y negro (unos y ceros).  Cuando lo ensayes me cuentas,

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 09 de Noviembre de 2010, 21:09:57
He estado estudiando la librería HDM64GS12.c más a fondo y la variable color es de tipo int1: void glcd_pixel(int8 x, int8 y, int1 color).  Lo que debes hacer en el programa que generó el último arreglo que posteaste, es que lo genere monocromático; o con un editor de bitmaps, pasar la imagen a monocromática antes de generar el arreglo.
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: Suky en 09 de Noviembre de 2010, 22:16:08
Yo utilizaba la siguiente función (agregada dentro de HDM64GS12.c) para volcar una imagen guardada en un array en la memoria de programa al LCD:

Código: C
  1. void glcd_frame_rom(long Offset){
  2. int8 i, j;
  3. long k;
  4.  
  5.    k=Offset;
  6.    for(i = 0; i < 8; ++i){
  7.       output_low(GLCD_DI);                      
  8.       glcd_writeByte(GLCD_LEFT, 0b01000000);    
  9.       glcd_writeByte(GLCD_LEFT, i | 0b10111000);
  10.       output_high(GLCD_DI);                    
  11.       for(j = 0; j < 64; ++j){
  12.          glcd_writeByte(GLCD_LEFT, Frame[k]);
  13.          k+=1;
  14.          delay_us(10);
  15.       }
  16.      
  17.       output_low(GLCD_DI);                      
  18.       glcd_writeByte(GLCD_RIGHT, 0b01000000);
  19.       glcd_writeByte(GLCD_RIGHT, i | 0b10111000);
  20.       output_high(GLCD_DI);                    
  21.       for(j = 0; j < 64; ++j){
  22.          glcd_writeByte(GLCD_RIGHT, Frame[k]);
  23.          k+=1;
  24.          delay_us(10);
  25.       }
  26.    }
  27. }

El array en este caso lo llamo Frame y es múltiplo de 1024, en offset se coloca la posición del byte inicial (de los 1024) dentro de array. Un ejemplo de array puede ser el siguiente:
Código: [Seleccionar]
const char Frame[]=
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x1F,0x9F,0xBF,0x1F,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
0x3F,0x9F,0x8F,0xF,0xCF,0xCF,0xF,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0xF,0xF,0x8D,0x81,0xC0,0xE1,0xF1,0xB9,0xF9,0xF8,0xFC,0xFC,0xFE,0xFE,
0xFE,0x5E,0x3F,0x97,0xEB,0xC7,0x87,0x32,0x2C,0x60,0x1C,0xE1,0x8F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xF7,0xE7,0xC7,0x87,0xA7,0xA7,0x37,0x27,
0x37,0x37,0x27,0x17,0x81,0x80,0xC4,0xC6,0xC3,0xE3,0xE0,0xF1,0xF8,0xF8,0xFC,0xFC,0x1C,0xC0,0xF9,0xFD,0xFD,0xFD,0xFC,0xFC,
0xFF,0xFF,0xFE,0xFE,0xE,0xFE,0xFC,0xFD,0xFD,0xFD,0xFF,0xFB,0xFB,0xFB,0xFB,0xFC,0xFC,0xFE,0xFF,0xFB,0xF7,0xE7,0xED,0xFB,
0xFF,0xFF,0xFF,0x9F,0xBF,0xFF,0x3F,0x87,0xE1,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF6,0xF7,0xF5,0xF0,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x30,
0xBE,0xFF,0xFF,0x83,0xCF,0x9F,0xBF,0xFF,0x77,0x77,0x73,0x7B,0x70,0x67,0x6F,0x4F,0x5F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xCE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0xBF,0x1F,0x1F,
0x33,0x81,0xC5,0xE0,0xE0,0xF0,0xF7,0xF3,0xFB,0xF8,0xFC,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xF0,0x20,0x80,0xF0,0xFD,0xFF,0xFF,0xF9,0xF3,0xF3,0xE0,0xC1,0x8F,
0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
0x1F,0x8E,0x8E,0x87,0xE7,0xFE,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x8F,0x81,0xF1,0xFC,0xFE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xE1,0xC7,0xBF,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF8,
0xF1,0xF3,0xF3,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,
0xF8,0xF9,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x7F,0x3F,0x1F,0x8F,0xF,0x8F,0xF,0x1F,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x1F,0x1F,0x3,0x3,0x83,0xC3,0xE3,0xE1,0xF1,0xF9,0xF8,0xFC,0xFC,
0xFC,0x7E,0x9C,0x5C,0x6E,0x1E,0xF,0xF,0x78,0xD9,0xA1,0x8F,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xF9,0xFD,0xF8,0xF8,0xF0,0xE1,
0xE3,0xC3,0x87,0xC7,0x7,0x7,0x3,0x1,0x90,0x94,0x9E,0xCF,0xC7,0xE1,0xF0,0xF0,0xF0,0xF8,0x8,0xE1,0xFB,0xFF,0xFD,0xFD,
0xFD,0xFE,0xFF,0xFD,0xFD,0xFD,0xE5,0x9F,0xBB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFF,0xFD,0xF8,0xF8,0xFC,0xFC,0x8E,0x9E,0xFF,0xFF,
0xFF,0xFF,0xFF,0x9F,0xBF,0x3F,0x7F,0x17,0x87,0xF3,0xF8,0xFC,0xFE,0xFF,0xFF,0xFE,0xFC,0xF9,0xF1,0xE4,0xCF,0xCE,0xC3,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0x7F,0x60,0x6E,0xFF,0xFF,0xF3,0xE3,0xCF,0xFF,0xFF,0xFF,0xFF,0x8F,0xC7,0x71,0x5E,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x19,0x0,0xE6,0x26,0x0,0xE,0xEE,0xEF,0xE3,0xF3,0xF7,0xF7,0xF3,0xFB,0xFB,0xF8,0xFE,0xFE,0xFE,0xFE,
0xFE,0xFE,0xFC,0xFD,0xFD,0xFB,0xFB,0xFB,0xFB,0xF9,0xFD,0xFD,0xFC,0x4E,0x0,0x0,0xFF,0xFF,0x7F,0x1F,0xE3,0xF8,0xFE,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x4F,0xE7,0xE3,0xE8,0x3C,0x1F,0xF,0xEF,0xEC,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xF3,0xF1,0xF1,0xF9,0xEB,0xEB,0xEB,0xF3,0xF1,0xF1,0xF8,0xF8,0xFF,0x0,
0x7,0x5,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF2,0xC6,0xCE,0xC7,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,
0x1F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,
0x1F,0x9F,0x1F,0x9F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x3F,0x3F,0xF,0xF,0x8F,0x83,0xE3,0xE3,0xF3,0xF9,0xF9,0xFD,0xFC,0xFC,
0xFE,0x7E,0xBC,0xDC,0x36,0xD6,0xE,0xE,0xCC,0xE1,0x32,0x49,0xC3,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x9F,0xDF,0xDF,0xCF,0xCF,0xCF,0xCF,0xCF,0xEF,0xEF,
0xCF,0xCF,0x87,0x83,0x81,0x80,0x82,0xC0,0x82,0x84,0x84,0xC4,0xC0,0xC0,0x81,0x9F,0xFF,0xEF,0xEF,0xE7,0xF7,0xF3,0xFB,0xFB,
0xFB,0xFB,0xFB,0xFB,0x6B,0xFB,0xFB,0xFB,0xFB,0xF3,0xF7,0xF7,0xF7,0xF7,0xF3,0xF9,0xFC,0xF4,0xCC,0xDE,0xEE,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0x2F,0x8F,0xE3,0xF9,0xFC,0xFE,0xFF,0xFF,0xFE,0xFE,0xFC,0xF9,0xF0,0xE5,0xEE,0xE6,0xE7,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,
0xBF,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x0,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0x7,0x6F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7C,0x81,0xFF,0xF7,0x77,0x7,0x3,0xFD,0xFC,0xFE,0xFE,0xF8,0xFB,
0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0x18,0xFC,0xFF,0x7F,0x5F,0xF,0x3,0xC3,0x19,0x7E,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF3,0xC0,0x81,0x1C,0x3C,
0xF0,0xC0,0x81,0xF,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0xF,0x87,0xA0,0xDC,0xCE,0xCE,
0xCF,0xC7,0xE4,0xF1,0xF1,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xE0,0xC9,0xC3,0xFF,0xF8,0xF0,0xE1,0xCB,0x23,0xF,0x3F,0xFF,0x87,0x87,0xC1,0xF1,
0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,
0x3F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x1F,0x1F,0x87,0x7,0x87,0xC7,0xE7,0xF3,0xFB,0xFB,0xF9,0xFD,
0xF9,0xF8,0x7C,0x9C,0xDC,0x6C,0x3C,0x1C,0xD8,0x81,0x43,0x9F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFB,0xF9,0xF9,0xFB,0xF3,0xF3,0xF3,0xE7,0xCF,0xCF,
0x9F,0x9F,0x9F,0x8F,0x87,0x81,0x88,0x8,0x8,0x88,0x89,0x8C,0xC1,0xC1,0xE1,0xF0,0xF0,0x81,0xE7,0xEF,0xE7,0xF7,0xF7,0xF7,
0xF7,0xF3,0xFB,0xFB,0xFB,0xFB,0xFB,0x1B,0xFB,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF3,0xF1,0xF0,0xF8,0xBC,0xFC,0xFE,0xFF,0xF7,
0xE7,0x9F,0xBF,0x3F,0xFF,0xF3,0xFF,0x7F,0x27,0xC2,0xE3,0xF8,0xFC,0xFE,0xFE,0xFC,0xFD,0xF9,0xE1,0xCC,0x97,0xBE,0x87,0xC7,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xE0,0x8F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xF,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFC,0xF5,0xE1,0x7,0xF,0x9F,0xEF,0x47,0x7,0xFA,0xF8,0xF8,
0xF9,0xF9,0xFB,0xF3,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF3,0xF3,0xF3,0xF1,0xE0,0x8F,0x3F,0xFF,0xFF,0x7,0xE3,0xC0,0xDB,
0x93,0xA7,0x8F,0xF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE3,0xC9,
0x98,0xB,0x1,0xC,0x1F,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xE3,0xC3,0xCF,0xCF,0xCF,0xCF,0xCF,0xCF,
0xCF,0xCC,0xC1,0xE7,0xFA,0xFF,0xFF,0xFF,0xFF,0x3F,0x1F,0x4,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xF1,0xE3,0xC7,0x86,0x3C,0x0,0x41,0xE3,0xEF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

Y en main:
Código: C
  1. while(1){
  2.      
  3.       glcd_frame_rom(0);
  4.       delay_ms(100);
  5.       glcd_frame_rom(1024);
  6.       delay_ms(100);
  7.       glcd_frame_rom(2048);
  8.       delay_ms(100);
  9.       glcd_frame_rom(3072);
  10.       delay_ms(100);
  11.    }

Y creo que debería obtenerse un caballo galopando  :mrgreen:


Saludos!




 
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 10 de Noviembre de 2010, 15:33:44

Ey bmb! Me ha funcionado perfecto con el programa que me pasaste por mail ! Es mucho más fácil asi. De todos modos me ha quedado la espinita con el otro, y seguiré los pasos de Suky ( hola de nuevo !). Pero bueno, la imagen ya la tengo en mi LCD, que de eso se trataba. Ahora bien, como la vida es muy fácil, pues yo me la complico mas. Me gusta que en el main() sea lo mas descriptivo posible, es decir, llenarlo lo máximo que pueda de funciones. Y es aquí donde se fastidia de nuevo, con un tema que creo que mi cerebro no acepta...los punteros!!! NO le pasará a nadie mas..? jeje, seguro que si. Y no será por hilos de esto, pero , no atino.

AL principio, cuando he visto que se escribia el logo en mi LCD, lo he querido pasar a funcion, directamente. Claro, CCS se queja porqué al haber array, necesita que se pase por puntero. He leído por aquí, que la estrategia de CCS es crear una dirección de memoria por cada posición del array. Así que ná, a pasar parámetros por puntero. Así lo he hecho, e incluso...¡ me ha compilado! wow! :D Pero ....ohhhh !! Se ve un churro con chocolate. O sea, nada, unos puntitos y a correr. He creido que quizas el ciclo con que se pasen los datos ( el tiempo) es demasiado grande, al pasarlo por función, o simplemente que no me lee las posiciones del array... ¿ Qué pasa aqui?! A ver si me entran ya los punteros a arrays...
Código: C
  1. // programa aprendizaje graphical LCD
  2. #include <18f4550.h>
  3. #device adc=10
  4.  
  5. #use delay(clock=40000000)
  6. #include <HDM64GS12.c>
  7. #include <GRAPHICS.c>
  8. #include <math.h>
  9. #include <lcd.c>
  10. #include <PICYO.h>
  11. #include <logo.h>
  12. #fuses HS,NOWDT, NOPROTECT,NOPROTECT,NOLVP,NODEBUG
  13.  
  14.  
  15. /*
  16. #ifndef GLCD_WIDTH
  17. #define GLCD_WIDTH   128
  18. #endif
  19. */
  20.  
  21.  
  22.  
  23.  
  24. void presentacion1( BYTE *logo[8192] );
  25. void presentacion2(void);
  26.  
  27.  
  28. void main(){
  29.  
  30.  
  31.  
  32. float  tension;
  33. char Palabra_Tension[]="Tension: ";
  34. char TensionNumAtexto[7];
  35. long pix1 = 0,pix2=0;
  36. int x, y;
  37. BYTE *logo;
  38.  
  39. //TRISA=0b11101011;
  40. //CMON=0b00000110; // es como usar setup_comparator(A0_VR_A1_VR)
  41.  
  42.  
  43.  
  44. setup_adc_ports(AN0|VSS_VDD);
  45. setup_adc(ADC_CLOCK_INTERNAL);
  46. set_adc_channel(0);
  47.  
  48.  
  49. glcd_fillScreen(OFF);              // Borrar la pantalla
  50. //presentacion1(*logo);
  51. //delay_ms(1000);
  52. //glcd_fillScreen(OFF);              // Borrar la pantalla
  53. presentacion2();
  54. presentacion1(*logo);
  55.  
  56. //glcd_fillScreen(OFF);              // Borrar la pantalla
  57.  
  58. /*
  59. while(1){
  60.  
  61. for (y=0; y<64; y++)
  62.    {
  63.      for (x=0; x<128; x++)     {
  64.        glcd_pixel(x, y, logo[pix1]);
  65.        pix1++;
  66.       }
  67.    }
  68. }*/
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. while(true){
  76. //SET_TRIS_A(0xFF);
  77. tension=(5.0*(float)read_adc()/1024.0);
  78. glcd_init(ON);
  79. glcd_text57(0,10,Palabra_Tension,1,1);
  80. sprintf(TensionNumAtexto,"%f",tension);// conversion   a caracter, ya que la funcion glcd_text75 no permite usar mas que caracteres
  81. glcd_text57(50,10,TensionNumAtexto,1,1);
  82. delay_ms(1000);
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. }//while
  93.  
  94.  
  95.  
  96. }// main
  97.  
  98.  
  99.  
  100.  
  101.  
  102. //////////  cuerpo funciones //////////////////////////////////////////
  103. /////////////////////////////////////////////////////////////////////////
  104.  
  105. void presentacion1( BYTE *logo[8192] ){     // el índice del array lo he puesto por ver si era por esto, pero lo he probado en "blanco"
  106. int x,y,pix1=0;
  107. for (y=0; y<64; y++)
  108.    {
  109.      for (x=0; x<128; x++)     {
  110.        glcd_pixel(x, y, *logo[pix1]);
  111.        pix1++;
  112.       }
  113.    }
  114. }
  115.  
  116.  
  117.  
  118.  
  119. void presentacion2(){
  120. char fraseBienvenida[]="Bienvenido,";
  121. char Guindous[]="Guindous";
  122. int x;
  123. glcd_init(ON);
  124. glcd_text57(33,30,fraseBienvenida,1,1);
  125. glcd_rect(33, 50, 93, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color
  126.    for (x=0;x<=60;x++){
  127.    glcd_rect(33, 50, 33+x, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color)
  128.    delay_ms(5);
  129.    }
  130. glcd_fillScreen(OFF);
  131. glcd_text57(0,10,Guindous,3,1);
  132. delay_ms(1000);
  133. }

spera, que paso la imagen  (que ya es buena), el archivo logo.g, vamos, en otro mensaje que este excede el máximo de carácteres
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 10 de Noviembre de 2010, 15:37:18
uhm, que raro...vaya el archivo logo.h es bastante grande para meterlo de golpe, así que no lo pongo en 2 piezas, sería algo cutre...
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: Suky en 10 de Noviembre de 2010, 16:13:01
Si la idea es pasar por parametros un array que se guarda en la memoria de programa, al horno!  :D CCS no lo permite, por eso hay que hacer algunas chanchadas para trabajar con él, como por ejemplo crear un único buffer y para dibujar indicar un offset. No queda otra, sino usar un compilador que sea más ANSI C.


Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 11 de Noviembre de 2010, 13:59:59
Trataré de hacer algo pues, porqué queda algo feo el no poderlo hacer así... En cuanto a ANSI C ( que creo que no estaría mal que CCS se "estandarizara") podría ser C18 ? ( también lo tengo y hago coas con él. La verdad es que los dos compiladores me gustan. CCS es mas simple, mas intuitivo, y muuucho mas aclarador en el help. C18 carece de todo eso, sin embargo...creo que si es ANSI C..es asi ?

Bueno me pongo en ello, a ver que sale :p
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 11 de Noviembre de 2010, 14:49:32
mm...no se si he borrado algo sin tenerlo en cuenta, pero por mas que quiero volver al estado inicial, mi LCD no hace ahora ni la presentación " facilona" del principio, ni me me indica la medicion. hago debug con Proteus y el debuger " no corre", pero por mas que miro...lo tengo igual que al principio...
Código: C
  1. // programa aprendizaje graphical LCD
  2. #include <18f4550.h>
  3. #device adc=10
  4.  
  5. #use delay(clock=40000000)
  6. #include <HDM64GS12.c>
  7. #include <GRAPHICS.c>
  8. #include <math.h>
  9. #include <lcd.c>
  10. #include <PICYO.h>
  11. #include <logo.h>
  12. #fuses HS,NOWDT, NOPROTECT,NOPROTECT,NOLVP,NODEBUG
  13.  
  14.  
  15.  
  16. #ifndef GLCD_WIDTH
  17. #define GLCD_WIDTH   128
  18. #endif
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. void presentacion(void);
  26.  
  27.  
  28. void main(){
  29.  
  30.  
  31.  
  32. float  tension;
  33. char Palabra_Tension[]="Tension: ";
  34. char TensionNumAtexto[7];
  35. long pix1 = 0;
  36. int x, y;
  37. BYTE logo;
  38.  
  39. //TRISA=0b11101011;
  40. //CMON=0b00000110; // es como usar setup_comparator(A0_VR_A1_VR)
  41.  
  42.  
  43.  
  44. setup_adc_ports(AN0|VSS_VDD);
  45. setup_adc(ADC_CLOCK_INTERNAL);
  46. set_adc_channel(0);
  47.  
  48. presentacion();
  49. //glcd_fillScreen(OFF);              // Borrar la pantalla
  50.  
  51. /*
  52. while(1){
  53.  
  54. for (y=0; y<64; y++)
  55.    {
  56.      for (x=0; x<128; x++)     {
  57.        glcd_pixel(x, y, logo[pix1]);
  58.        pix1++;
  59.       }
  60.    }
  61. }*/
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. while(true){
  69. //SET_TRIS_A(0xFF);
  70. tension=(5.0*(float)read_adc()/1024.0);
  71. glcd_init(ON);
  72. glcd_fillScreen(OFF);              // Borrar la pantalla
  73. glcd_text57(0,10,Palabra_Tension,1,1);
  74. sprintf(TensionNumAtexto,"%f",tension);// conversion   a caracter, ya que la funcion glcd_text75 no permite usar mas que caracteres
  75. glcd_text57(50,10,TensionNumAtexto,1,1);
  76. delay_ms(1000);
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. }//while
  87.  
  88.  
  89.  
  90. }// main
  91.  
  92.  
  93.  
  94.  
  95.  
  96. //////////  cuerpo funciones //////////////////////////////////////////
  97. /////////////////////////////////////////////////////////////////////////
  98.  
  99.  
  100.  
  101. void presentacion(){
  102.  
  103. char fraseBienvenida[]="Bienvenido,";
  104. char Guindous[]="Guindous";
  105. int x;
  106. glcd_init(ON);
  107. glcd_text57(33,30,fraseBienvenida,1,1);
  108. glcd_rect(33, 50, 93, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color
  109.    for (x=0;x<=60;x++){
  110.    glcd_rect(33, 50, 33+x, 55, NO, ON);//glcd_rect(x1, y1, x2, y2, fill, color)
  111.    delay_ms(5);
  112.    }
  113. glcd_fillScreen(OFF);
  114. glcd_text57(0,10,Guindous,3,1);
  115. delay_ms(1000);
  116. }

esto tiene pintas de resintalar el proteus ?
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 11 de Noviembre de 2010, 16:11:58
bueno el fallo que me da es :

pic18 CPU source code
No source line at PC adress PC =1DEA



y
write 0x00 to unimplemented memory does nothing


Bueno, si, que no hay programa en la memoria...pero como resulevo eso ? Simplemente he añadido lo anterior..
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 11 de Noviembre de 2010, 16:42:44

vale chicos, ya está. Cómo no, era una chorrada, y eso ya lo sabia..por eso me tenía tan mosca. Al intentar hacer la presentacion del dibujo por función, antes he uqerido pasar por puntero, y guardarlo en un puntero ( claro) que lo definia del mismo nombre que el nombre del array del archivo.h
ggrr!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: bmb en 11 de Noviembre de 2010, 17:26:35
Me alegra que lo solucionaras.  Como vas con el método alternativo que te ha sugerido Suky?  Sería interesante que también lograras que funcionara.  Nos va a tocar estudiar C18  :)

Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 12 de Noviembre de 2010, 14:27:24

Hola!
Bueno, la verdad es que me voy mirando el foro ( es estar delante del pc y poner el foro) y mirarme mas preguntas de gente, además que voy haciendo mas cosas, sin prisa pero con pausa :D. Aun no me he puesto, pero lo suyo es que trataré de hacer ( sin copiar, que si no no tiene sentido) lo de Suky ( me lo estudiaré a ver que hace) y hacerlo yo. Pero...uhhh si con C18 puedo pasar parámetro por puntero, va a ser que la balanza se declinará hacia C18 ( aunque CCS nunca sería bueno de dejar e compilarlo eh ?)
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 13 de Noviembre de 2010, 07:30:00
Bueno, estoy escribiendo mi pequeño manual ( por poner un nombre...) de como funciona tu funcion, Suky, y de momento he llegado a estas conclusiones :

Código: C
  1. /* Interpretar la funcion    " void glcd_writeByte(int1 side, BYTE data);" para uso en la funcion de Suky
  2. "void glcd_frame_rom(long Offset);", con motivo de poder usar arrays, usando archivos externos: CCS NO DEJA USAR PUNTEROS PARA ELLO. Solución:
  3.  Crear un unico buffer, y darle un offset
  4.  
  5. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6. // ------------------COMO FUNCIONA  " void glcd_writeByte(int1 side, BYTE data);" ----------------------------------
  7. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8.  
  9.  
  10. En caso que se ponga side=1, elije el PIN GLCD_CS2, o lo que es lo mismo :PIN_B1   // Chip Selection 2
  11. sino,
  12.                      side=0, elije el PIN GLCD_CS1, lo que es lo mismo: PIN_B0   // Chip Selection 1
  13.  
  14. Side=1 --> escribe el byte en la parte izquierda de la pantalla .---|
  15.                                                                     |          ||||||||||||||||||||||||||
  16.                                                                     |->        || side=1    |side=0    ||
  17. Side=0 --> escribe el byte en la parte derecha de la pantalla.  --- |          || GLCD_CS2  | GLCD_CS1 ||
  18.                                                                                ||           |          ||
  19.                                                                                ||||||||||||||||||||||||||
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  27. // ------------------COMO FUNCIONA  " void glcd_frame_rom(long Offset);" ----------------------------------
  28. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  29.  
  30.  
  31.      output_low(GLCD_DI); --> pone a 1 el PIN_B2 del PIC, para indicar al display,  modo de lectura de instruccion
  32.      glcd_writeByte(GLCD_LEFT, 0b01000000); --> Escojemos lado izquierdo de la pantalla y lo ponemos 0. Segun HDM64GS12.c, en esa direccion esta ésa órden.
  33.      glcd_writeByte(GLCD_LEFT, i | 0b10111000); --> inicializa la direccion de memoria, en la memoria del Display.Usa OR:
  34.                                                     Setea cada  bit del Byte del buffer, del lado correspondiente de la pantalla, o sea, bit a bit, dice donde ha
  35.                                                     de escribir.
  36.  
  37.  
  38.    ___________________________
  39.   |        TABLA DE OR                  |    Por ejemplo, si i=2 (i=0b00000010)  0b00000010 |0b01000000 = 0b10000010
  40.   |___________________________|
  41.   | BitA  BitB   Resultado              |
  42.   |-------------------------------|
  43.   |  0      0       0                        |
  44.   |  0      1       1                        |
  45.   |  1      0       1                        |
  46.   |  1      1       1                        |
  47.   |___________________________ |
  48.  
  49.  
  50.      output_high(GLCD_DI);                   --> Despues de direccionar el dato a insertar, el PIN_B2 está a 1 para poner PIN GLCD_DI en aviso de insercion de datos.
  51.      for(j = 0; j < 64; ++j){
  52.         glcd_writeByte(GLCD_LEFT, Frame[k]); --> Ahora, se dibuja ya la izquierda de la pantalla, correspondiente a las columnas,eje y ( anchura de 64 pixeles)
  53.         k+=1;                                    ¿ Que sentido tiene el offset? Al ser un array unidimensional, el eje "x" no queda especificado, por lo tanto,
  54.         delay_us(10);                            en main() está dirijiendo el offset donde escribir, o lo que es lo mismo, relacionando coordenadas (x,y) del pixel a
  55.      }                                           escribir.
  56.  
  57.  
  58.  
  59.  
  60. */


Suky, estoy analizando tu función antes de jugar con ella, y creo que entiendo todo el proceso. El hecho de hacer un offset es porqué
el array es unidimensional. El fichero de la imagen, contiene 1024 bytes (8192 bits), asi que entiendo que el tratamiento del offset empieze por0.
En 0 empieza ( supongo) por el lado superior izquierdo de la pantalla. Pero no entiendo por qué lo haces en 3 veces ( hablo del offset puesto desde el main), no acabo de
entender la forma de escritura del display: escribe las 64 primeras columnas. Ahi hay 1024 bytes.Sumas 1024 de nuevo (2048) y escribe otras 64 columnas desde el nuevo ofset
del archivo imagen.Pero no entiendo esas " 3 tacadas" de offset, entenderia si cada suma que hicieras de offset, sumara un total de 8192 bits. Así, todos los bits de la imagen
quedarían repartidos en diferentes filas por el offset. pero no, suma un número inferior, asi que no debe ser asi como funciona. Cuál es el sentido pues de exactamente esos  numeros
en el offset ?

Código: C
  1. while(1){    
  2.  
  3.      glcd_frame_rom(0);
  4.      delay_ms(100);
  5.      glcd_frame_rom(1024);  
  6.      delay_ms(100);
  7.      glcd_frame_rom(2048);
  8.      delay_ms(100);
  9.      glcd_frame_rom(3072);
  10.      delay_ms(100);
  11.  
  12.   }    //  0+1024=2048 +1024= 3072 +1024=4096....
....  que pasa hasta los 8192 bits?? (1024 bytes *8 )
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: Suky en 13 de Noviembre de 2010, 11:19:46
Para guardar los datos de una imagen que ocupa 128x64 pixeles necesitamos: (128*64)/8=1024 Bytes. O sea que cada 1024 bytes tenemos una nueva imagen. Los datos están guardados en el array empezando desde la esquina superior izquierda, en donde los bytes son columnas. (De esa manera dispone los bytes un GLCD con driver ks0108)

Entonces al hacer glcd_frame_rom(0), dibujamos una imagen en la pantalla completa, y con glcd_frame_rom(1024) dibujamos otra imagen.


Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 13 de Noviembre de 2010, 13:22:05
ahh vale, ya entiendo. Se dibuja de 1024 en 1024 bytes, y por columnas. O sea, cada columna está escrita en 1024 bytes, y lo que realmente se hace es que se va superponiendo fila a fila ( escribiendo en cada columna) la imagen, por ejemplo, para escribir lo haria un modo asi tal que:

escribo 1
escribo1+escribo2
escribo1+escribo2+escribo3
(...)
escribo1+(...) escribo64

Si asi, entiendo pues el offset. Voy a usarla pues, ahora que sé porqué.
Gracias !
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 13 de Noviembre de 2010, 13:45:29
ups..no me compila. He agregado la funcion dentro del archivo  HDM64GS12.c, como has dicho, y el problema me sale exactamente el mismo, no sabe que es Frame ( he cambiado por logo, mi archivo logo.h con su cont byte logo[]).       
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: Suky en 13 de Noviembre de 2010, 13:50:36
Adjunto una imagen de como se envían los datos. Donde el byte 0 es el de la izquierda superior, y el byte 1023 es el de la esquina inferior derecha.

ups..no me compila. He agregado la funcion dentro del archivo  HDM64GS12.c, como has dicho, y el problema me sale exactamente el mismo, no sabe que es Frame ( he cambiado por logo, mi archivo logo.h con su cont byte logo[]).        

En este archivo (HDM64GS12.c), debes agregar un include al archivo que tiene el buffer, en mi caso por ejemplo: #include "Frames.c"



Por aquí (http://www.micros-designs.com.ar/libreria-glcd-128x64-c/) deje una librería para usar en CCS o C18 independientemente. Y como C18 permite punteros a rom, se puede utilizar la siguiente función:


Código: C
  1. void vGLCDImagen(unsigned char x,unsigned char y,unsigned char LargoX,unsigned char LargoY,rom char *Data){
  2. unsigned char x_temp, y_temp,i,Cant_Byte_Y,Data_temp;
  3.  
  4.    Cant_Byte_Y=((LargoY-1)/8)+1;
  5.    
  6.    for(i=0;i<Cant_Byte_Y;i++){
  7.       for(x_temp=x;x_temp<x+LargoX;x_temp++){
  8.                  Data_temp=*Data++;
  9.          for(y_temp=0;y_temp<LargoY-i*8;y_temp++){
  10.             vGLCDPoint(x_temp,y_temp+y+i*8,(Data_temp&0x01));
  11.                         Data_temp>>=1;
  12.          }
  13.       }
  14.    }
  15. }

Y usarla por ejemplo:
Código: C
  1. // Dibujamos imagen partiendo desde x=0, y=0, tamaño 128x64, imagen nombre: Imagen128x64 (ubicada en Fuentes.c)
  2.         vGLCDImagen(0,0,128,64,&Imagen01_128x64[0]);
  3.         #ifdef GLCD_USE_MODE_FAST                       // Si está habilitado el modo rapido, actualizamos pantalla.
  4.         vGLCDUpdate();
  5.         #endif


Saludos!
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: PICYO en 13 de Noviembre de 2010, 14:35:46
si, cierto, debia poner ese include en el HD...c, pero al ponerlo en mi main(), creía que sería suficiente. Ahora bien ha compilado, pero ha salido una nuve de bits que nada tiene que ver con mi imagen. He probado a hacer otro array distinto, volviendo al bit2LCD, a ver si era por algo relacionado con ellos ( estaba usando el programa que me paso bmb), pero nada. De momento usaré la forma que me dijo bmb, de hecho así me ha salido. Iré directamente a ver lo que me has enseñado en último plano, para poder usar punteros directamente
Título: Re: escribir medida analogica con glcd_text57()
Publicado por: Suky en 13 de Noviembre de 2010, 14:44:31
Puede ser que la manera de crear el array no tenga nada que ver como lo guarda en la RAM el GLCD ks0108, y como en la función de bmb, se envía pixel por pixel no hay problema. Esto debería solucionarse eligiendo la manera correcta al crear el array unidimensional con el software.


Saludos!