TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: RALF2 en 14 de Enero de 2008, 23:22:26

Título: Glcd y Touch Screen?
Publicado por: RALF2 en 14 de Enero de 2008, 23:22:26
Que tal amigos!
Tengo en mente realizar un proyecto con una glcd 128x64 con controlador ks0108, como esta

http://www.circuit-ed.com/128x64-GLCD-BlWh-w-Touchscreen-P146C8.aspx

Pero mi duda es la siguiente:
Cuando pulse en la esquina superior izquierda (posicion 0,0) de la glcd esta me va a dar un voltaje X0,Y0 estos son los voltajes correspondientes al eje X e Y luego cuando pulse en la esquina inferior derecha (posicion 127,63) de la glcd obtendre un voltaje para cada eje llamemoslo X1,Y1.
Pues bien la idea es representar cada voltaje para cada eje (X de 0...127) (Y de 0...63)
Para que dependiendo del voltaje medido saber exactamente en que punto de la glcd fue pulsado.

Lo dicho arriba corresponde al proceso de calibracion de la touch screen este debe hacerse al inicio del programa solamente, para ello en el programa se debe hacer que la glcd muestre un punto correspondiente a las coordenadas 0, 0 luego el usuario debe pulsar sobre esa marca leer los voltajes correspondientes a la posicion 0,0 luego debe debe repetir lo mismo para la posicion 127, 63. Esto para definir la frontera de la glcd  :mrgreen:

Alguna idea de como hacerlo  :?
Título: Re: Glcd y Touch Screen?
Publicado por: Nocturno en 17 de Enero de 2008, 09:09:54
La idea de cómo hacerlo ya la tienes  :D

¿En qué necesitas ayuda, en la representación de los píxeles en sus coordenadas, o en la lectura ADC de las tensiones de la pantalla táctil?
Título: Re: Glcd y Touch Screen?
Publicado por: RALF2 en 17 de Enero de 2008, 17:40:49
Que tal amigo nocturno!
Mira ya tengo resuelto el problema lo que pasa es que he estado algo ocupado y he tenido para rematar problemas con mi conexion de internet  :(

Lo de medir los voltajes eso lo tengo claro, lo que queria saber es como hacia para representar esos voltajes en las coordenadas de la glcd  (0,0 - 127,63):mrgreen:

Pero ayer haciendo algunas pruebas logre determinar como hacerlo, luego buscando por internet mas informacion para confirmar lo que habia hecho, encontre unos ejemplos que explican como hacerlo  :-/

El link del ejemplo donde halle la informacion lo coloco luego porque en este momento no lo tengo a la mano!
Ademas de ver varios ejemplos por el internet pude detectar que algunos por la forma como alimentan al touch screen son potencialmente peligros  :shock:

Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: RALF2 en 17 de Enero de 2008, 21:44:28
Muy bien aqui les dejo algunos enlaces con ejemplos de como utilizar la glcd como comentaba al inicio de este port!

http://www.circuit-ed.com/-EasyPIC4-Development-KIT-P12C15.aspx
Aqui pueden bajar Examples for mikrobasic, alli hay una carpeta donde dan un ejemplo del uso del touch screem  :mrgreen:

Aqui les dejo una imajen de como queda el circuito equivalente para medir el voltaje en el eje "Y" de manera similar se usa para el eje "X".

(http://img168.imageshack.us/img168/5847/ep5touchplatecircuitab2.jpg)
Título: Re: Glcd y Touch Screen?
Publicado por: J1M en 18 de Febrero de 2008, 23:57:13
http://cgi.ebay.es/Graphic-Touch-screen-LCD-Display-128x64-Blue_W0QQitemZ170003104844QQihZ007QQ

Me acabo de echar uno al bolsillo! :) Tengo ganas de jugar con eso del touch y un GLCD! :) y por ese precio...
Título: Re: Glcd y Touch Screen?
Publicado por: RALF2 en 19 de Febrero de 2008, 00:16:12
La semana que viene me debe llegar tambien la que compre, para asi comensar a con las proacticas  :mrgreen:
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 05 de Marzo de 2008, 13:00:50
En un principio creia que la implantacion del touch screen en un pic era mas sencillo de lo que realmente es. Aqui os pongo un esquema de como hacen los del easypic para controlar el touchpad.

Si alguno de vosotros tiene ya probado y funcionando el touch screen, agradeceria indicara el sintema de controla que usa para poder leer los valores analogicos del touch.

Recapitulemos, tenemos 4 hilos, x+ x- y+ y-, si alguien puede que nos cuente como seria el control.

Gracias.

En la imagen faltan los valores de algunos componentes :-(

Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 06 de Marzo de 2008, 22:17:25
En esta direccion

http://www.jvmbots.com/viewtopic.php?p=6103

esta el código hecho por un tal XOR (el que vende las pantallas en la direccion del primer post), esta en mikrobasic y ahi puedes sacar una forma mas simple de usar el touchscreen que la que propone Mikroelektronika pues no requiere circuiteria adicional.

Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 06 de Marzo de 2008, 22:21:11
Aqui:  http://www.sfcompiler.co.uk/wiki/pmwiki.php?n=SwordfishUser.TouchScreen     hay una librería más elaborada hecha en swordfish.
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 07 de Marzo de 2008, 07:06:22
Estudiare el codigo y consultare las dudas que tenga.

Gracias.
Título: Re: Glcd y Touch Screen?
Publicado por: Menta en 07 de Marzo de 2008, 15:54:26
Si alguien en Argentina es comprador de ebay (ya que nunca compré por este medio ni estoy registrado) y tiene intensión de adquirir este producto me ofrezco a compartir los gastos de envío y comprar en forma conjunta. realmente está bien económica!!! pero sólo necesito 1

Soy de Villa María Córdoba
Título: Re: Glcd y Touch Screen?
Publicado por: MGLSOFT en 07 de Marzo de 2008, 17:20:41
20 Euros son para nosotros 90$, no es asi??
Dejame estudiarlo, a ver como va... :mrgreen:
Título: Re: Glcd y Touch Screen?
Publicado por: Menta en 07 de Marzo de 2008, 17:44:11
20 Euros son para nosotros 90$, no es asi??
Dejame estudiarlo, a ver como va... :mrgreen:

al día de la fecha después de la caida del dolar son algo así como 98 pesos (el euro esta arriba de los 4.90)

Lo que pasa es que acá en Córdoba por una pantalla que me parece similar a esa, al menos tenía la misma resolución y el touchscreen también me pidieron arriba de $400 obviamente que no la compré.  :?
Eso fue en un negocio en el centro de Cba capital a una cuadra de mediavilla que no recuerdo como se llama. Me gustaría tener una de algunos colores o al menos 2 grises intermedios, pero no me da el bolsillo.
Título: Re: Glcd y Touch Screen?
Publicado por: ema en 07 de Marzo de 2008, 17:50:32
yo tbn me uno lo que pasa es que tampoco compre por ebay :( :(
Título: Re: Glcd y Touch Screen?
Publicado por: MGLSOFT en 07 de Marzo de 2008, 18:01:36
Cika tiene a 28 dolares unas que hay que agregarles el panel touch y su conversor, se va a 20 dolares mas.
Asi que estan baratas en serio esas... :mrgreen:
Título: Re: Glcd y Touch Screen?
Publicado por: ema en 07 de Marzo de 2008, 18:48:28
Cika tiene a 28 dolares unas que hay que agregarles el panel touch y su conversor, se va a 20 dolares mas.
Asi que estan baratas en serio esas... :mrgreen:

yo ya lo tengo a ese pero le quiero agregar el touch, pero no lo consiguo por ningun lado, no me queda otra que comprar uno con touch
Título: Re: Glcd y Touch Screen?
Publicado por: MGLSOFT en 07 de Marzo de 2008, 19:00:55
En SYC tienen los touch mas el integrado, consultalos alli.
www.sycelectronica.com.ar (http://www.sycelectronica.com.ar)
Título: Re: Glcd y Touch Screen?
Publicado por: alogic.on en 07 de Marzo de 2008, 19:36:39
hola
yo no encontraba los touch sueltos y al final en ebay localice para telefono o pda salen a dos leuros cada modulo. que aunque no sea igual que esa, les puede servir para alguna otra cosa
-una (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-PARA-SONY-ERICSSON-P990-P990i-T6_W0QQitemZ120227701727QQihZ002QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-dos (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-FOR-SONY-ERICSSON-P800-P802-P800i_W0QQitemZ130202044324QQihZ003QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-tres (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-PARA-TREO-600-T6_W0QQitemZ110228682869QQihZ001QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-cuatro (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-FOR-SONY-ERICSSON-M600-M600i-W950_W0QQitemZ110228682871QQihZ001QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)

un saludo
Título: Re: Glcd y Touch Screen?
Publicado por: ema en 07 de Marzo de 2008, 23:03:15
En SYC tienen los touch mas el integrado, consultalos alli.
www.sycelectronica.com.ar (http://www.sycelectronica.com.ar)

El probema es que tienen para 240*128 y el mio es de 128*64. pero igual voy a ver que hago.

hola
yo no encontraba los touch sueltos y al final en ebay localice para telefono o pda salen a dos leuros cada modulo. que aunque no sea igual que esa, les puede servir para alguna otra cosa
-una (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-PARA-SONY-ERICSSON-P990-P990i-T6_W0QQitemZ120227701727QQihZ002QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-dos (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-FOR-SONY-ERICSSON-P800-P802-P800i_W0QQitemZ130202044324QQihZ003QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-tres (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-PARA-TREO-600-T6_W0QQitemZ110228682869QQihZ001QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)
-cuatro (http://cgi.ebay.es/TOUCH-SCREEN-PANTALLA-FOR-SONY-ERICSSON-M600-M600i-W950_W0QQitemZ110228682871QQihZ001QQcategoryZ41343QQssPageNameZWDVWQQrdZ1QQcmdZViewItem)

un saludo

Estoy en la misma de comprar por ebay cosa que nunca hice.
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 08 de Marzo de 2008, 07:04:41
Yo si compro mucho en ebay pagando con paypal. Hasta la fecha todas mis compran han sido buenas ya que como vivo en un pueblo no tengo otra posibilidad que realizar la compras.

Yo siempre pago con paypal y me fijo que el vendedor tenga al menos 500 ventas con un indice por encima del 95% de satisfacion del cliente.

Si teneis alguna duda preguntarmela sin problemas.
Título: Re: Glcd y Touch Screen?
Publicado por: alogic.on en 08 de Marzo de 2008, 09:39:15
hola

podrias, si no es mucha molestia, averiguar si se pueden pedir varias touch pagando un solo envio, vamos que las pongan todas dentro del mismo sobre, y como lo pagaria. queria pedir 10 pero si tengo que pagar todos los envios ya no es rentable, perdona pero no controlo bien ebay y menos ingles :? llevo tiempo intentando contactar con los vendedores, y no se si es que no contestan o que algo estoy haciendo mal, localice uno contra rembolso para probar, pero nunca me llego ningun paquete

un saludo y gracias
Título: Re: Glcd y Touch Screen?
Publicado por: ema en 08 de Marzo de 2008, 12:11:51
Yo si compro mucho en ebay pagando con paypal. Hasta la fecha todas mis compran han sido buenas ya que como vivo en un pueblo no tengo otra posibilidad que realizar la compras.

Yo siempre pago con paypal y me fijo que el vendedor tenga al menos 500 ventas con un indice por encima del 95% de satisfacion del cliente.

Si teneis alguna duda preguntarmela sin problemas.


Mi problema no es de compra, ya que aqui en argentina hay algo similar a ebay que se llama deremate o sino mercado libre, los cuales uso sin problema.
mi problema radica en los envios desde el exterior que nunca hice. Y no se porque pero me asustan. :? :?
Título: Re: Glcd y Touch Screen?
Publicado por: RALF2 en 08 de Marzo de 2008, 14:51:48
Que tal amigos!
Yo ya realice un codigo que esta totalmente funcional pero desgraciadamente tuve un accidente con mi glcd (el perro me la mordio  :D) y bueno no pude seguir realizando pruebas.
Ya compre dos mas pero estoy a la espera que me lleguen de U.S.A para grabar el videillo correspondiente con el software en proton para que lo puedan utilizar  :mrgreen:

Apenas tenga las glcd en mi mano les posteo lo que he hecho!
En la pagina que coloque al principio de estos post es donde las compre, para los interesados!


Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 11 de Marzo de 2008, 13:55:57
No compensa ya que los gastos de envio son solo 3 euros desde el distribuidor a tu casa. El cobra un fijo de 3 euros por la primera unidad mas 1.5 euros por cada unidad a mayores. Si alguien compra 10 ahorraria solo 15 euros y aun falta mandarlos por correo desde el que los compre a los demas.

Vamos, en este caso, no compensa.

 
Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 14 de Marzo de 2008, 19:54:51
He aqui un videito....  :P


Es una pantalla de las que venden en el link del primer post, montado en una placa easypic4...  el código es el que puse en un link anterior pero modificado y portado a CCS.
Título: Re: Glcd y Touch Screen?
Publicado por: ema en 14 de Marzo de 2008, 20:49:51
Muy bueno el videito. Felicitaciones.

La numeración que pusiste al azar es tu clave de banco????  :D :D

Saludos

P/D: Lo de la numeración es un chiste. Por las dudas vio!!!.
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 15 de Marzo de 2008, 11:57:33
muy interesante, me podias mandar (o publicar en este hilo) el codigo fuente en CCS a mi correo? Me intesa ver como has dado solucion a algunos de los problemas que me estoy encontrando al hacer este proyecto.

Gracias.
Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 15 de Marzo de 2008, 15:14:35
Este es el archivo  .c

Código: [Seleccionar]
/*****************************************************************
** Conexion del touchscreen resistivo de 4 hilos
** X+ = RA0/AN0
** Y+ = RA1/AN1
** X- = RA2/AN2
** Y- = RA3/AN3
*****************************************************************/



#include "E:\Archivos de programa\PICC\Projects\touchScreen\main.h"
#define FAST_GLCD;
#include <ks0108_mE_EP4.c> //Esta es la misma libreria HDM64GS12.C que trae el
                           //ccs pero con la asignacion de pines para la tarjeta
                           //easypic4.
#include <graphics.c>

//**  AQUI VA LA IMAGEN DEL TECLADO  ****


int16 tmp;
int16 y_min,y_max,x_min,x_max;
int16 y_loc,x_loc,y_rng,x_rng;
int1 touch_flag,line_flag;
char valor_x[5];
char valor_y[4];

/****************************************************************
*****   Rutina para mostrar la imagen del teclado             ***
****************************************************************/
void glcd_imagen()
{
   char i,j;
   signed char k;
   for( i = 0 ; i < 64 ; i ++ )
   { 
      for( j = 0 ; j < 16 ; j ++)
      {   
         for(k=7;k>-1;k--)
         {     
            if( bit_test(Prueba[i][j] ,7-k ))
               glcd_pixel( j*8+k,i, ON );
         } 
      }
   }
}


/**************************************************
*******  Lee la coordenada y   ********************
**************************************************/
int16 y_pos(void)
{
   int16 result;
   set_tris_a(0x04);
   output_a(0x0A);      //Energize X plate, RA1 and RA3
   set_adc_channel(2);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x01);
      set_adc_channel(0);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }
   Return(result);
}

/**************************************************
*******  Lee la coordenada x   ********************
**************************************************/
int16 x_pos(void)
{
   int16 result;
   set_tris_a(0x02);
   output_a(0x05);      //Energize X plate, RA1 and RA3
   set_adc_channel(1);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x08);
      set_adc_channel(3);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }   
   Return(result);
}

/**************************************************
***  Funcion para determinar si la pantalla     ***
***  ha sudo pulsada o no...                    ***
**************************************************/
int1 touch(void)
{
   int1 resp;
   int16 tmp,ty,tx;
   resp=false;
   ty = y_pos();
   if (ty > 0)
   {
      delay_ms(30);
      ty=y_pos();
      tx=x_pos();
      if (ty > y_min)
      {
         if(ty < y_max)
         {
            resp = true;
            tmp=(tx - x_min) << 7;
            x_loc =(int16)(tmp/x_rng);
            if(x_loc > 127)  x_loc = 127;
            tmp = (ty - y_min) << 6;
            y_loc = (int16)(tmp/y_rng);
            if(y_loc > 63)   y_loc = 63;
         }
      }
   }
   return(resp);
}

/*************************************************************
*****  Rutina para calibrar la pantalla                *******
*************************************************************/
void calibracion()
{
   int1 sw;
   sw=1;
   while(x_pos()==0)
   {
      glcd_rect(0,0,2,2,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   delay_ms(30);
   y_min = y_pos();
   x_min = x_pos();
   glcd_rect(0,0,2,2,YES,OFF);
   glcd_update();
   while(x_pos() > 0);
   delay_ms(30);
   while(x_pos()==0)
   {
      glcd_rect(125,61,127,63,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   delay_ms(30);
   y_max = y_pos();
   x_max = x_pos();
   y_rng = y_max - y_min;
   x_rng = x_max - x_min;
   while(x_pos() > 0);
   glcd_fillScreen(OFF);
   glcd_update();
}

/**********************************************************
****  muestra las coordenadas   ***************************
**********************************************************/
void print_xy_val()
{
   glcd_rect(13,40,29,57,YES,OFF);
   if(Touch()==true)
   { 
      touch_flag = true;
      sprintf(valor_x,"%lu",x_loc);
      valor_x[4]='\0';
      glcd_text57(13,40,valor_x,1,ON);
      sprintf(valor_y,"%lu",y_loc);
      valor_y[3]='\0';
      glcd_text57(13,50,valor_y,1,ON);
   }
   else
   {
      touch_flag = false;
      glcd_rect(13,40,29,57,YES,OFF);
   }
   //glcd_text57(1,40,x1,1,ON);
   //glcd_text57(1,50,x2,1,ON);
   glcd_update();   
   
}

/*****************************************************************
******  etermina sobre que boton se ha pulsado            ********
*****************************************************************/
int8 boton_act(void)
{
   int8 button;
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>1) &&(y_loc<13))) button = '1';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>1) &&(y_loc<13))) button = '2';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>1) &&(y_loc<13))) button = '3';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>17)&&(y_loc<29))) button = '4';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>17)&&(y_loc<29))) button = '5';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>17)&&(y_loc<29))) button = '6';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>33)&&(y_loc<46))) button = '7';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>33)&&(y_loc<46))) button = '8';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>33)&&(y_loc<46))) button = '9';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>49)&&(y_loc<62))) button = '0';
   if(((x_loc>83) &&(x_loc<120))&((y_loc>49)&&(y_loc<62))) button = 'X';
   
   return(button);
}

void main()
{
   //lcd_init();
   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
   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_timer_3(T3_DISABLED|T3_DIV_BY_1);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   // TODO: USER CODE!!
   glcd_init(ON);             //Inicializa la glcd
   glcd_fillScreen(OFF);      //Limpia la pantalla
   glcd_update();
   calibracion();             //Calibra la pantalla
   glcd_update();
   glcd_imagen();             //muestra el teclado
   glcd_update();

   while(1)
   {
      if(touch()==true)
      {
      valor_x[0]=boton_act();
      valor_x[1]='\0';
      if (valor_x[0]=='X')
         glcd_rect(27,9,37,23,YES,OFF); //Borra el numero mostrado
      if ((valor_x[0]>='0')&&(valor_x[0]<='9'))
      {
         glcd_rect(27,9,37,23,YES,OFF);  //Borra el numero mostrado antes de
         glcd_text57(27,9,valor_x,2,ON); //escribir uno nuevo..   
      }
      glcd_update();
      }
   }
}
Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 15 de Marzo de 2008, 15:15:55
Este es el teclado..  lo pongo aparte porque supera los limites permitidos de caracteres en un post...



Código: [Seleccionar]
const int8 prueba[64][16] = {
      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    /*  [*************************************************************                                                                   ]  */
      0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7F, 0xFF, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0x1E,    /*  [***                                                       ***    ***************     ***************     ***************   **** ]  */
      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x88, 0x00, 0x18, 0x80, 0x01, 0x92,    /*  [**                                                         **   *              **   *              **   *              **  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x3C, 0x0D, 0x03, 0xC0, 0xD2,    /*  [*                                                           *  *       **       ** *      ****      ** *      ****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x07, 0x80, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *     ****       ** *     **  **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x66, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *     **  **     ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x06, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *         **     ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x0C, 0x0D, 0x01, 0xC0, 0xD2,    /*  [*                                                           *  *       **       ** *        **      ** *       ***      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x18, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *       **       ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x30, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *      **        ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x60, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *     **         ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x60, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *     **         ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x7E, 0x0D, 0x03, 0xC0, 0xD2,    /*  [*                                                           *  *       **       ** *     ******     ** *      ****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0xC8, 0x00, 0x1C, 0x80, 0x01, 0xD2,    /*  [*                                                           *   *              ***  *              ***  *              *** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x92,    /*  [*                                                           *    ****************    ****************    ****************  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0x12,    /*  [*                                                           *     **************      **************      **************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,    /*  [*                                                           *                                                              *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFF, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0x12,    /*  [*                                                           *    ***************     ***************     ***************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x88, 0x00, 0x18, 0x80, 0x01, 0x92,    /*  [*                                                           *   *              **   *              **   *              **  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xC0, 0xD0, 0x7E, 0x0D, 0x03, 0xC0, 0xD2,    /*  [*                                                           *  *        **      ** *     ******     ** *      ****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0xC0, 0xD0, 0x60, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *       ***      ** *     **         ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0xC0, 0xD0, 0x60, 0x0D, 0x06, 0x00, 0xD2,    /*  [*                                                           *  *      ****      ** *     **         ** *     **         ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0xC0, 0xD0, 0x60, 0x0D, 0x06, 0x00, 0xD2,    /*  [*                                                           *  *      ****      ** *     **         ** *     **         ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0xC0, 0xD0, 0x7C, 0x0D, 0x07, 0xC0, 0xD2,    /*  [*                                                           *  *     ** **      ** *     *****      ** *     *****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0C, 0xC0, 0xD0, 0x66, 0x0D, 0x07, 0x60, 0xD2,    /*  [*                                                           *  *    **  **      ** *     **  **     ** *     *** **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0F, 0xC0, 0xD0, 0x06, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *    ******      ** *         **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xC0, 0xD0, 0x06, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *        **      ** *         **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xC0, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *        **      ** *     **  **     ** *     **  **     ** *  * ]  */
      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0xC0, 0xD0, 0x3C, 0x0D, 0x03, 0xC0, 0xD2,    /*  [**                                                         **  *        **      ** *      ****      ** *      ****      ** *  * ]  */
      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x80, 0x01, 0xC8, 0x00, 0x1C, 0x80, 0x01, 0xD2,    /*  [*************************************************************   *              ***  *              ***  *              *** *  * ]  */
      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x92,    /*  [**                                                         **    ****************    ****************    ****************  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0x12,    /*  [*                                                           *     **************      **************      **************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,    /*  [*                                                           *                                                              *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFF, 0x07, 0xFF, 0xF0, 0x7F, 0xFF, 0x12,    /*  [*                                                           *    ***************     ***************     ***************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x88, 0x00, 0x18, 0x80, 0x01, 0x92,    /*  [*                                                           *   *              **   *              **   *              **  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x07, 0xE0, 0xD0, 0x3C, 0x0D, 0x03, 0xC0, 0xD2,    /*  [*                                                           *  *     ******     ** *      ****      ** *      ****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x60, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *         **     ** *     **  **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x60, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *         **     ** *     **  **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xC0, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *        **      ** *     **  **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0xC0, 0xD0, 0x3C, 0x0D, 0x06, 0xE0, 0xD2,    /*  [*                                                           *  *        **      ** *      ****      ** *     ** ***     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x66, 0x0D, 0x03, 0xE0, 0xD2,    /*  [*                                                           *  *       **       ** *     **  **     ** *      *****     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x01, 0x80, 0xD0, 0x66, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *       **       ** *     **  **     ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0x00, 0xD0, 0x66, 0x0D, 0x00, 0x60, 0xD2,    /*  [*                                                           *  *      **        ** *     **  **     ** *         **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0x00, 0xD0, 0x66, 0x0D, 0x06, 0x60, 0xD2,    /*  [*                                                           *  *      **        ** *     **  **     ** *     **  **     ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0x00, 0xD0, 0x3C, 0x0D, 0x03, 0xC0, 0xD2,    /*  [*                                                           *  *      **        ** *      ****      ** *      ****      ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0xC8, 0x00, 0x1C, 0x80, 0x01, 0xD2,    /*  [*                                                           *   *              ***  *              ***  *              *** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFF, 0x87, 0xFF, 0xF8, 0x7F, 0xFF, 0x92,    /*  [*                                                           *    ****************    ****************    ****************  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3F, 0xFF, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0x12,    /*  [*                                                           *     **************      **************      **************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12,    /*  [*                                                           *                                                              *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x7F, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0x12,    /*  [*                                                           *    ***************     ***********************************   *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x88, 0x00, 0x00, 0x00, 0x01, 0x92,    /*  [*                                                           *   *              **   *                                  **  *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0xC0, 0xD0, 0x00, 0x03, 0x00, 0x00, 0xD2,    /*  [*                                                           *  *      ****      ** *                  **                ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x01, 0xF3, 0x00, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *           *****  **                ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x0B, 0x00, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **    * **                ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x0B, 0x68, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **    * ** ** *           ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x03, 0x78, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **      ** ****           ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x03, 0x60, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **      ** **             ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x03, 0x60, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **      ** **             ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x0B, 0x60, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **    * ** **             ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x06, 0x60, 0xD0, 0x03, 0x0B, 0x60, 0x00, 0xD2,    /*  [*                                                           *  *     **  **     ** *          **    * ** **             ** *  * ]  */
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x03, 0xC0, 0xD0, 0x01, 0xF3, 0x60, 0x00, 0xD2,    /*  [*                                                           *  *      ****      ** *           *****  ** **             ** *  * ]  */
      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0xC8, 0x00, 0x00, 0x00, 0x01, 0xD2,    /*  [**                                                         **   *              ***  *                                  *** *  * ]  */
      0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7F, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E,    /*  [***                                                       ***    ****************    ************************************  **** ]  */
      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,    /*  [*************************************************************     **************      **********************************        ]  */
     
};

Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 15 de Marzo de 2008, 15:16:29
y este es el achivo .h


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

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES H4                       //High speed osc with HW enabled 4X PLL
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES PUT                      //Power Up Timer
#FUSES STVREN                   //Stack full/underflow will 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 NOWRTB                   //Boot block not write protected
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOCPD                    //No EE protection
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads

#use delay(clock=32000000)
#use fast_io(A)
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 15 de Marzo de 2008, 16:26:23
Gracias, si te parece bien lo estudiare y te ire preguntando las dudas que me surjan.
Ya mismo comprare el lcd.
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 15 de Marzo de 2008, 16:43:47
He ya copiado tu codigo y me dispuse a compilarlo y me encontre con mi primer problema. No he usado nunca las librerias del glcd del ccs y quiza haya que hacer algo que no hice.

El error que me da al compinar es que no esta definido el identificador glcd_pixel de la libreria graphics.c ¿me falta cargar alguna otra libreria?



Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 15 de Marzo de 2008, 16:50:36
Error mio que queria usar la libreria ks0108.c en vez de la hdm64gs12.c

:-)
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 16 de Marzo de 2008, 17:52:11
Hoy me he dedicado a estudiar tu codigo, compilarlo, probarlo en proteus y tengo que decir que programas de una forma clara y es facil seguir los pasos que das y saber que pretendes con las sentencias que vas poniendo. Y eso, para un programador, es una virtud grande :-)

 Bien, de todo el codigo solo tengo un par de dudas. La mas importante tiene que ver con las sentencias sprintf que estan en la funcion print_xy_val(). Supongo que es una funcion que usabas en el chequeo del programa ya que veo que ahora no es llamada nunca (o eso me parece por que no vi donde se la llamaba),  y mi pregunta es, para utilizar esa sentencia (sprintf) no debia estar asignado la directiva de configuracion de puerto seria para que funcionara? O dicho de otra forma, esta sentencia no tiene por objeto que envie el dato por el puerto rs232? Por que no veo que configures la asignacion de patillas al puerto por ningun lado.

 Un saludo y felicidades por tu codigo.

Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 16 de Marzo de 2008, 22:34:07
La instruccion sprintf es para convertir un valor númerico en una cadena.
Por ejemplo la instruccion sprintf(valor_y,"%lu",y_loc);  convierte el valor "y_loc" que es un int16  en una cadena que se almacena en valor_y que es un array de 4 elementos char. El parametro %lu indica que el valor debe convertirse en en formato "long unsigned"..  si lo quisieras en hexadecimal entonces deberias poner %x, etc...  en la ayuda de ccs puedes encontrar mas información.

Esa rutina como bien dices, la usaba para probar, lo que hace es mostrar en la parte de abajo del glcd, las coordenadas en donde se esta tocando la pantalla.
Título: Re: Glcd y Touch Screen?
Publicado por: Sir_Egnos en 17 de Marzo de 2008, 06:13:51
Ahh, muchas gracias, estaba yo equivocado entonces. Mi ingles es muy malo y no habia entendido bien las instrucciones entonces en el manual del ccs.

Gracias por tu aclaracion.

Título: Re: Glcd y Touch Screen?
Publicado por: AKENAFAB en 22 de Septiembre de 2008, 16:19:48
Hola !

Saludotes


Una consulta :  :mrgreen:

¿Con que programa generan el codigo de bitmap a c?

Gracias!

Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 23 de Septiembre de 2008, 13:42:47
¿Con que compilador lo as echo?

Yo uso el ccs y no hay forma de poder usar el touchscreen

Saudos.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 24 de Septiembre de 2008, 12:49:34
Hola, haber si podeis echarme una mano, por que no lo consigo.

El ultimo codigo de duende azul, me funciona perfectamente en el proteus, yo uso un pic 18f4553 en vez del 18f4550.

en proteus parece funcionar, ya que aparece un cuadradito que parapadea que debe ser la opcion de calibrar la pantalla.

Pero en la prueba real, no me funciona, si en el ccs en la linea que manda calibrar la pantalla hago esto :

// calibracion();             //Calibra la pantalla, ********   O sea le añado las // para que no la ejecute, el glcd me muestra el dibujo del teclado.

El glcd funciona perfectamente, pero si ejecuto el programa tal cual, la rutina de calibracion no me funciona y creo que puede ser por el cristal o los fuses.

He puesto un cristal externo de 8mhz y 2 condensadores de 22pfs

Y los fuses he tenido que canviar alguno, ya que el H4 y el NOOSCSEN  que salen en el codigo de duende azul el 18f4553 parece ser no lo tiene.


Asi lo he dejado:

-------------------------------------------------------------------------------------------------------
#include <18F4553.h>
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
//#FUSES H4                       //High speed osc with HW enabled 4X PLL
#FUSES HSPLL 
#FUSES NOPROTECT                //Code not protected from reading
//#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES PUT                      //Power Up Timer
#FUSES STVREN                   //Stack full/underflow will 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 NOWRTB                   //Boot block not write protected
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOCPD                    //No EE protection
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB   
--------------------------------------------------------------------------------------------------------------------


¿Que estoy haciendo mal?

Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 24 de Septiembre de 2008, 13:57:15
Hola, yo estoy igual,  probe el programa que escribio duende azul y me funcionó, pero al hacer mas pruebas y mirarlo con mas detalle he comprobado que falla muchisimas veces, cuando no funciona lo reinicio o hago un reset (hay veces que tengo que hacerlo unas cuantas veces segidas)para que  funcione. Cuando no funciona no aparece la pantalla de calibración, he repasado la  función de calibrar y no veo ningún error. Lo curioso es que funcione cuando quiere.

dejo el trozo de código de la calibración ( aunque mas arriba esta el código completo, escrito por duende azul)

Código: [Seleccionar]

/**************************************************
*******  Lee la coordenada y   ********************
**************************************************/
int16 y_pos(void)
{
   int16 result;
   set_tris_a(0x04);
   output_a(0x0A);      //Energize X plate, RA1 and RA3
   set_adc_channel(2);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x01);
      set_adc_channel(0);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }
   Return(result);
}

/**************************************************
*******  Lee la coordenada x   ********************
**************************************************/
int16 x_pos(void)
{
   int16 result;
   set_tris_a(0x02);
   output_a(0x05);      //Energize X plate, RA1 and RA3
   set_adc_channel(1);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x08);
      set_adc_channel(3);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }   
   Return(result);

------------------------------------------------------------


/*************************************************************
*****  Rutina para calibrar la pantalla                *******
*************************************************************/
void calibracion()
{
   int1 sw;
   sw=1;
   while(x_pos()==0)
   {
     glcd_rect(0,0,2,2,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   
 
   delay_ms(30);
   y_min = y_pos();
   x_min = x_pos();
   
   glcd_rect(0,0,2,2,YES,OFF);
   glcd_update();
   while(x_pos() > 0);
   delay_ms(30);
   while(x_pos()==0)
   {
      glcd_rect(125,61,127,63,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   delay_ms(30);
   y_max = y_pos();
   x_max = x_pos();
   y_rng = y_max - y_min;
   x_rng = x_max - x_min;
   while(x_pos() > 0);
   glcd_fillScreen(OFF);
   glcd_update();
 
 
 
 


Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 24 de Septiembre de 2008, 14:45:15
Dani27, dime que cristal y condensadores usas en el oscilador de tu pic, y que pic usas.

Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 24 de Septiembre de 2008, 14:55:23
La placa con que la estoy probando es una easypic4 , y el cristal que utilizo es de 8Mhz, los condensadores son los originales de la placa de 22pF. No creo que sea problema de cristal, ya que si que me  funciona de vez encuando, y el cristal es el mismo siempre. Continuo probando....


El pic que utilizo es un 18f4520.


Un saludo,

Dani.

edito:

Ahora ya me funciona, pues si tenias razón, he cambiado unos fuses a la hora de programar y ahora va perfecto, he cambiado :

el oscilador lo tenia  en HS-PLL  y lo he cambiado a HS

luego he  puesto en disable Brown  out voltage   ( aunq creo q este ultimo no tendra nada q ver, luego lo pruebo)
Un saludo.




Título: Re: Glcd y Touch Screen?
Publicado por: NANO1985 en 24 de Septiembre de 2008, 16:16:32
hola! muchachos!, ya me hicieron babear demasiado con ésto de los GLCD,.... densé una vuelta por la página de mikroeletrónica,.... están vendiendo unos GLCD 128*64 con pantalla táctil a tan solo 24U$S.... una ganga....
Saludos  8)
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 25 de Septiembre de 2008, 12:25:43
Pues no hay manera, en la pantalla de calibracion se me queda colgado.

Pongo aqui la modificacion del codigo para el 18f4553 haber que os parece.

/*****************************************************************
** Conexion del touchscreen resistivo de 4 hilos
** X+ = RA0/AN0
** Y+ = RA1/AN1
** X- = RA2/AN2
** Y- = RA3/AN3
*****************************************************************/

#include <18F4553.h>
#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
#FUSES HS                       //High speed osc with HW enabled 4X PLL
#FUSES NOPROTECT                //Code not protected from reading
//#FUSES NOOSCSEN                 //Oscillator switching is disabled, main oscillator is source
#FUSES NOBROWNOUT                 //Reset when brownout detected
#FUSES BORV20                   //Brownout reset at 2.0V
#FUSES PUT                      //Power Up Timer
#FUSES STVREN                   //Stack full/underflow will 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 NOWRTB                   //Boot block not write protected
#FUSES NOWRTC                   //configuration not registers write protected
#FUSES NOCPD                    //No EE protection
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads

#use delay(clock=32000000)
#use fast_io(A)
#define FAST_GLCD;
#include <HDM64GS12.C> //Esta es la misma libreria HDM64GS12.C que trae el
                           //ccs pero con la asignacion de pines para la tarjeta
                           //easypic4.
#include <graphics.c>

---------------- Aqui va la imagen del teclado --------------------
int16 tmp;
int16 y_min,y_max,x_min,x_max;
int16 y_loc,x_loc,y_rng,x_rng;
int1 touch_flag,line_flag;
char valor_x[5];
char valor_y[4];

/****************************************************************
*****   Rutina para mostrar la imagen del teclado             ***
****************************************************************/
void glcd_imagen()
{
   char i,j;
   signed char k;
   for( i = 0 ; i < 64 ; i ++ )
   { 
      for( j = 0 ; j < 16 ; j ++)
      {   
         for(k=7;k>-1;k--)
         {     
            if( bit_test(Prueba[j] ,7-k ))
               glcd_pixel( j*8+k,i, ON );
         } 
      }
   }
}


/**************************************************
*******  Lee la coordenada y   ********************
**************************************************/
int16 y_pos(void)
{
   int16 result;
   set_tris_a(0x04);
   output_a(0x0A);      //Energize X plate, RA1 and RA3
   set_adc_channel(2);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x01);
      set_adc_channel(0);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }
   Return(result);
}

/**************************************************
*******  Lee la coordenada x   ********************
**************************************************/
int16 x_pos(void)
{
   int16 result;
   set_tris_a(0x02);
   output_a(0x05);      //Energize X plate, RA1 and RA3
   set_adc_channel(1);   //Set AN2 as input
   delay_us(10);
   result = read_adc(); //get Y axis value
   if (result != 0)
   {
      set_tris_a(0x08);
      set_adc_channel(3);
      delay_us(10);
      tmp = (1023 - read_adc());
      result = (result + tmp) >> 1;   
   }   
   Return(result);
}

/**************************************************
***  Funcion para determinar si la pantalla     ***
***  ha sudo pulsada o no...                    ***
**************************************************/
int1 touch(void)
{
   int1 resp;
   int16 tmp,ty,tx;
   resp=false;
   ty = y_pos();
   if (ty > 0)
   {
      delay_ms(30);
      ty=y_pos();
      tx=x_pos();
      if (ty > y_min)
      {
         if(ty < y_max)
         {
            resp = true;
            tmp=(tx - x_min) << 7;
            x_loc =(int16)(tmp/x_rng);
            if(x_loc > 127)  x_loc = 127;
            tmp = (ty - y_min) << 6;
            y_loc = (int16)(tmp/y_rng);
            if(y_loc > 63)   y_loc = 63;
         }
      }
   }
   return(resp);
}

/*************************************************************
*****  Rutina para calibrar la pantalla                *******
*************************************************************/
void calibracion()
{
   int1 sw;
   sw=1;
   while(x_pos()==0)
   {
      glcd_rect(0,0,2,2,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   delay_ms(30);
   y_min = y_pos();
   x_min = x_pos();
   glcd_rect(0,0,2,2,YES,OFF);
   glcd_update();
   while(x_pos() > 0);
   delay_ms(30);
   while(x_pos()==0)
   {
      glcd_rect(125,61,127,63,YES,SW);
      glcd_update();
      delay_ms(100);
      sw=!sw;
   }
   delay_ms(30);
   y_max = y_pos();
   x_max = x_pos();
   y_rng = y_max - y_min;
   x_rng = x_max - x_min;
   while(x_pos() > 0);
   glcd_fillScreen(OFF);
   glcd_update();
}

/**********************************************************
****  muestra las coordenadas   ***************************
**********************************************************/
void print_xy_val()
{
   glcd_rect(13,40,29,57,YES,OFF);
   if(Touch()==true)
   { 
      touch_flag = true;
      sprintf(valor_x,"%lu",x_loc);
      valor_x[4]='\0';
      glcd_text57(13,40,valor_x,1,ON);
      sprintf(valor_y,"%lu",y_loc);
      valor_y[3]='\0';
      glcd_text57(13,50,valor_y,1,ON);
   }
   else
   {
      touch_flag = false;
      glcd_rect(13,40,29,57,YES,OFF);
   }
   //glcd_text57(1,40,x1,1,ON);
   //glcd_text57(1,50,x2,1,ON);
   glcd_update();   
   
}

/*****************************************************************
******  etermina sobre que boton se ha pulsado            ********
*****************************************************************/
int8 boton_act(void)
{
   int8 button;
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>1) &&(y_loc<13))) button = '1';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>1) &&(y_loc<13))) button = '2';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>1) &&(y_loc<13))) button = '3';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>17)&&(y_loc<29))) button = '4';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>17)&&(y_loc<29))) button = '5';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>17)&&(y_loc<29))) button = '6';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>33)&&(y_loc<46))) button = '7';
   if(((x_loc>83) &&(x_loc<100))&((y_loc>33)&&(y_loc<46))) button = '8';
   if(((x_loc>103)&&(x_loc<120))&((y_loc>33)&&(y_loc<46))) button = '9';
   if(((x_loc>63) &&(x_loc<80)) &((y_loc>49)&&(y_loc<62))) button = '0';
   if(((x_loc>83) &&(x_loc<120))&((y_loc>49)&&(y_loc<62))) button = 'X';
   
   return(button);
}

void main()
{
   //lcd_init();
   setup_adc_ports(AN0_TO_AN4);
   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_timer_3(T3_DISABLED|T3_DIV_BY_1);
//Setup_Oscillator parameter not selected from Intr Oscillator Config tab

   // TODO: USER CODE!!
   glcd_init(ON);             //Inicializa la glcd
   glcd_fillScreen(OFF);      //Limpia la pantalla
   glcd_update();
   calibracion();             //Calibra la pantalla
   glcd_update();
   glcd_imagen();             //muestra el teclado
   glcd_update();

   while(1)
   {
      if(touch()==true)
      {
      valor_x[0]=boton_act();
      valor_x[1]='\0';
      if (valor_x[0]=='X')
         glcd_rect(27,9,37,23,YES,OFF); //Borra el numero mostrado
      if ((valor_x[0]>='0')&&(valor_x[0]<='9'))
      {
         glcd_rect(27,9,37,23,YES,OFF);  //Borra el numero mostrado antes de
         glcd_text57(27,9,valor_x,2,ON); //escribir uno nuevo..   
      }
      glcd_update();
      }
   }
}

-------------------------------------------------------------------------------------------------------------------------------------------

Las unicas modificaciones que he echo son los fuses y la linea que define las analogicas ya que en el 18f4553 canvia un poco y he puesto :  setup_adc_ports(AN0_TO_AN4);

Pero no me funciona, en el proteus si que aparece el cuadrado parpadeando de la pantalla de calibracion, pero en mi pantalla no, por lo que tiene que ser algo de mi pantalla.
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 26 de Septiembre de 2008, 04:11:29
Hola, si tienes un 18f4520 y un cristal de 8Mhz te puedo pasar el .hex que me funciona, y asi compruebas que no tienes algún otro problema. De momento me he quedado sin internet en casa y te escribo desde el trabajo, por lo que no he podido comprobar tu configuración de los fuses, aunque creo que es correcta.
(porcierto, has probado que con la configuración de pines de la libreria que utilizas pata la glcd sea correcta, es decir   te aparece almenos la imagen, igual es problema de la definición de pines )

Un saludo,

Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 26 de Septiembre de 2008, 10:58:18
La configuracion del glcd es correcta, si me salto la rutina de calibracion, me aparece la imagen del teclado.

Estaba usando para conectar el glcd una faja de los discos duros y parece ser que el cable donde estaba conectato el Y- del sensor touch no llegaba a la placa, en un conector d ela faja.

En el otro conector si que llegan los 4 perfectamente.

Ahora me sale la pantalla de calibracion, me sale un cuadradito en la esquina superior izquierda y luego otro en la esquina superior derecha, y sin tocar nada pasa a salir la imagen del teclado.

Algo he avanzado, pero sigue sin funcionarme.

Enviame el programa y vere a ver si puedo conseguir algun pic como el tuyo, y asi descarto problemas.

Saludos.
Título: Re: Glcd y Touch Screen?
Publicado por: elmasvital en 27 de Septiembre de 2008, 07:30:12
hola! muchachos!, ya me hicieron babear demasiado con ésto de los GLCD,.... densé una vuelta por la página de mikroeletrónica,.... están vendiendo unos GLCD 128*64 con pantalla táctil a tan solo 24U$S.... una ganga....
Saludos  8)

No esta mal de precio pero me piden 17$ de gastos de envio :-P y como que no
Título: Re: Glcd y Touch Screen?
Publicado por: NANO1985 en 27 de Septiembre de 2008, 08:33:39
mmmm claro,.... ya me parecía medio baratieri,... es que debe ser sumamente frágil de trasportar, pero de todas formas creo que se fueron lejos,,... jaja   :D  :D  :D     se me hace que están cobrando lo restante del GLCD en el envío    :D  :D  :D   
Saludos 

Título: Re: Glcd y Touch Screen?
Publicado por: NANO1985 en 27 de Septiembre de 2008, 08:36:39
mmm q ganas q le ten go a ésta placa (http://www.mikroe.com/en/tools/easypic5) tambien...  la misma viene sin los displays,... lo cual me parece un engaña bobo... porque si no te dás cuenta de la minúscula nota al pie de la imagen, luego lo tenés que pedir los displays y en definitiva te termina saliendo más de lo que miente la fotografia de los U$S129 jajajajaja  :D
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 28 de Septiembre de 2008, 11:50:15
Hola, siento escribir con tanto retraso, pero continuo sin internet en casa, ahora mismop he tenido que conectarme a la red wifi del vecino  y estoy algo limitado, dejo el enlace de la descarga del archivo .hex y del código , tambien he añadido la libreria que utilizo para mi placa , una easypic4. Es el código con el que estoy trabajando y me va estupendamente de momento, aún estoy modificandolo para mis necesidades.


http://rapidshare.com/files/149114803/lcdtouch_prueba5.rar.html


Aprobecho para hacer una consulta, quisiera temporizar el tiempo de encendido de la glcd, asi que si en 5 minutos no ha detectado que ha sido pulsado el sensor táctil se apage, ¿ para ello como lo deberia hacer, cortando directamente la alimentación de la glcd? es decir colocando un transistor o un rele para cortar la alimentación de la glcd, o si habria algún otro modo.

Un saludo y gracias


Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 28 de Septiembre de 2008, 15:29:09
Hola dani27, he probado tu codigo y me ocurre exactamente lo mismo, es decir aparece un cuadradito pequeño arriba a la izquierda, parpadea 1 o 2 veces se borra solo sin tocar nada, aparece un cuadradito abajo a la derecha tambien se borra solo y me aparece la imagen del teclado, pulso las teclas y no ocurre exactamente nada.

Podrias poner el archivo lcdtouch.h que falta, haber si son los fuses lo que me falla, ya me estoy volviendo loco.

Estoy a la espera de que me lleguen pics como el tuyo que he pedido, haber si fuera problema del pic.

Saludos.
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 28 de Septiembre de 2008, 15:52:47
Hola, aqui lo tienes : http://rapidshare.com/files/149173555/lcdtouch.rar.html

te he añadido un  archivo .hex que es una modificación que anula el calibrado de la pantalla, es decir ya empieza con unos valores predeterminados.
( porcierto no se cuanto me durara la conexión  wifi con el vecino, asi que no se si podre responderte si necesitas algo )
Un saludo,


Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 28 de Septiembre de 2008, 16:05:07
Gracia spor todo.

http://cgi.ebay.es/Graphic-Touch-screen-LCD-Display-128x64-Blue_W0QQitemZ170003104844QQihZ007QQcategoryZ33713QQrdZ1QQssPageNameZWD1VQQcmdZViewItem

Este es el touchscreen que yo utilizo, y puede que el conexionado del touch sea distinto dle tuyo, seguramente ese sera el fallo, voy a mirar a ver


Saldos
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 28 de Septiembre de 2008, 16:51:45
Me podeis poner el conexionado de vuestro touch, ¿Como lo habeis conectado al pic?

Seguro que es lo que me esta fallando.


Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 29 de Septiembre de 2008, 04:59:43
Hola, cuando llege a casa ( si tengo internet) lo miro bien, pero creo que utilizado esta configuración de pines : http://www.postimage.org/image.php?v=Pq198J6A
sacada de : http://www.jvmbots.com/viewtopic.php?=684&postdays=0&postorder=asc&start=15


Un saludo,

Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 01 de Octubre de 2008, 05:15:58
Ya me funciona, era por el conector del touch.

Gracias.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 01 de Octubre de 2008, 05:52:33
DAni dime con que programa as creado el teclado del glcd.

Saludos.
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 02 de Octubre de 2008, 13:34:36
Hola, siento el retraso, pero porfin vuelvo a tener internet en casa, despues de varias discusiones con la compañia de cable....
Me alegro mucho que porfin te vaya.
El programa que utilizado es el : Bitmap2LCD  y lo puedes descargar desde : http://bitmap2lcd.com/pages/en.html

Porcierto, como estas de memoria ram con el pic que utilizas, porque con dos pantallitas que le he metido al 18f4520 me he quedado sin. No se si habra otra forma de cargar las imagenes y que no utilicen tanta ram ( tal vez desde una eeprom) de momento voy a pedir algún otro pic con mas capacidad ( tambien es verdad que soy bastante novato y consumo siempre mas de la cuenta).

Un saludo,

Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: juanez en 02 de Octubre de 2008, 19:05:26
Hola con el 18f4553 de momento solo he definido 2 pantallas como tu y cuando compilo con el ccs :

Ram = 55%
Rom = 14%

No se exactamente cuanta ram restara cada pantalla, pero de momento me que un poco menos de la mitad.

Yo me pasaria a un pic mas grande, por ejemplo este tiene usb, pwms cuando te aburras con la glcd tendras muchas cosas mas para investigar.

Saludos.
Título: Re: Glcd y Touch Screen?
Publicado por: AKENAFAB en 02 de Octubre de 2008, 20:43:34
Hola yo estoy usando el pic18f4550 , guardo la imagen en memoria de programa como constante , tengo solo una imagen de 128x64 y de rom llevo 6% y ram 1%. Por si les sirve ese dato.


Por cierto , tambien tuve problemas con el oscilador , NO puedo hacer trabjar la pantalla a los 12MIPS , empeiza a escribir basura.

Aumento unos retardos ne la libreria y mejoro un poco , pero no da para más hasta el momento con 4 MIPS.

Un saludo!
Título: Re: Glcd y Touch Screen?
Publicado por: Dani27v en 08 de Octubre de 2008, 10:16:45
Bueno porfin he recibido unas muestras del 18f4525 con mas ram que el 18f4520, para ver si se anima la gente con las pantallas glcd táctiles pongo un video, perdón por la calidad ya que me ha sido dificil grabarlo con el movil y con la otra mano manejar la glcd,  es simplemnte unas pantallitas que no estan muy elavoradas ya que son de prueba para un futuro, ya que de momento soy muy novato y estoy muy verde jejejeje, bueno pues eso a ver si se anima mas la gente que me cuesta mucho encontrar información sobre estas panatllitas y la verdad esq son bastante asequibles.

http://es.youtube.com/watch?v=AEW7g_ZsuIo

Un saludo,

Dani.
Título: Re: Glcd y Touch Screen?
Publicado por: AKENAFAB en 01 de Noviembre de 2008, 05:14:29
Saludos!

Modifique la libreria nuevamente(esto proque retome el tema  xD),el problema era el retardo de ciclos,anteriormente lo habia aumentado pero sin resultado alguno,ahora lo cambie a us y todo va bien.

Esos retardos son antes de ejecutar el enable glcd y despues de este.

Con un retardo de 1us y 5us.

Ahora trabajo con cristal de 8 MHz (no tengo de 10 para irme al limite) y PLL activado.

HS+ PLL = 4xFOSC = 8x4=32 <--(sin calculadora  :D)

32MHz/4 = 8 MIPS :D

TOdo esto con el pic18F252.

Un saludo!

Por cierto dany muy buenos avances  :-/

Espero conseguir pronto algun touchscreen. :mrgreen:
Título: Re: Glcd y Touch Screen?
Publicado por: hernanfire en 16 de Julio de 2009, 13:29:36
Hola a todos :), simulan una glcd touch screen en proteus!!  y varios usuarios lo logran, como el ultimo mensaje es del 11/08 pregunto en este hilo (espero alguien lo lea!  :D :
cual es el glcd con el que lo logran?? ya que mirando las glcd del proteus que uso (V.7 sp2) no encuentro glcd con cuatro hilos de control para conectarlo al pic (seguro me falta algo entre el pic y la glcd!!  :? El glcd 128x64 con controlador ks0108 que tiene proteus no tiene cuatro hilos   :P por eso pero quiero saber como lo conecto al pic??,
Gracias por su ayuda.....y sigo buscando...una ayuda  :(
Título: Re: Glcd y Touch Screen?
Publicado por: Duende_Azul en 20 de Julio de 2009, 00:17:30
No hay un touchScreen en proteus.. por lo menos no uno resistivo de 4 hilos. Los que lo han logrado, lo han montado físicamente.
Título: Re: Glcd y Touch Screen?
Publicado por: albermillan69 en 12 de Mayo de 2010, 17:39:56
Buenas!!

Sera posible q me hagan llegar las rutinas ya modificadas y funcionando en CCS???  Quiero meterme a trabajar con las lcd touchsscreen!!

Gracias....
Título: Re: Glcd y Touch Screen?
Publicado por: AKENAFAB en 12 de Mayo de 2010, 22:34:05
eso ya esta posteado aqui

Solo lee desde el primer post y estan los ejemplos

Saludos
Título: Re: Glcd y Touch Screen?
Publicado por: ignaciorod en 22 de Mayo de 2012, 16:20:16
como hiciste el menu de la contraseña? si me podes pasar o si alguien tiene algo parecido
Título: Re: Glcd y Touch Screen?
Publicado por: falflores en 01 de Agosto de 2012, 14:39:47
Saludos a todos, espero que todavía lean este post, mi pregunta es para el amigo Duende Azul, Adapté el código que tienes en este post para el manejo de un touch para pantalla de 128x64 para funcionar en un touch de una pantalla de 160x80, y debo decir que funciona de maravilla!, gracias por el código, pero solo puedo escribir en el área de 128x64, por lo que me dí manos a la obra y traté de modificar el código para abarcar toda la pantalla, pero sin éxito, y es que no comprendo unas partes de tu código, si fueras tán amable de aclararme para que sirven esos pedazos de código (claro, si es que aún lo recuerdas jejeje). Es el siguiente:

Código: [Seleccionar]
resp = true;
tmp=(tx - x_min) << 7;
x_loc =(int16)(tmp/x_rng);
if(x_loc > 127)  x_loc = 127;
tmp = (ty - y_min) << 6;
y_loc = (int16)(tmp/y_rng);
if(y_loc > 63)   y_loc = 63;

Ya me quebré la cabeza bastante tiempo y no logro comprender para que sirve el (tx - x_min) << 7 y tampoco se que hace la tercera línea, lo mismo para y.

Si aún lo recuerdas, crees que me podrías explicar como funciona este pedazo del algoritmo por favor?. Muchas gracias.