Autor Tema: Librería mTouch PIC32  (Leído 10415 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Librería mTouch PIC32
« en: 20 de Noviembre de 2011, 16:41:36 »
Hoy le toca el turno a la librería mTouch. Es una adaptación a mi aplicación de un ejemplo de Microchip, por lo que recomiendo a los puristas que recurran a mTouchCap_PIC32MX_DirectKeyDemo porque es más completo y versátil que mi adaptación.

En esta librería he quitado todo lo que me sobraba y creo que ha quedado sencillita.

Los ficheros los tenéis adjuntos; a continuación, el vídeo.


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Librería mTouch PIC32
« Respuesta #1 en: 20 de Noviembre de 2011, 16:48:11 »
Muy lindo pero no has puesto el codigo del ejemplo... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Librería mTouch PIC32
« Respuesta #2 en: 20 de Noviembre de 2011, 16:57:17 »
Tienes razón  :oops:

Ahí va.

Código: C
  1. lcd_init();
  2.         sprintf(buf, "\f  Libreria LCD-C32\n  ================\n");
  3.         SendLCDBuffer(buf);
  4.         SendLCDBuffer("Adaptada de FlexLCD\n  www.micropic.es");
  5.  
  6.         while (!mtouch_estado(6));      // espera pulsación tecla OK
  7.         SendLCDBuffer("\f");
  8.         j=0;
  9.         while (1) {
  10.                 #if defined(USB_POLLING)
  11.       // Check bus status and service USB interrupts.
  12.         USBDeviceTasks(); // Interrupt or polling method.  If using polling, must call
  13.                       // this function periodically.  This function will take care
  14.                       // of processing and responding to SETUP transactions
  15.                       // (such as during the enumeration process when you first
  16.                       // plug in).  USB hosts require that USB devices should accept
  17.                       // and process SETUP packets in a timely fashion.  Therefore,
  18.                       // when using polling, this function should be called
  19.                       // regularly (such as once every 1.8ms or faster** [see
  20.                       // inline code comments in usb_device.c for explanation when
  21.                       // "or faster" applies])  In most cases, the USBDeviceTasks()
  22.                       // function does not take very long to execute (ex: <100
  23.                       // instruction cycles) before it returns.
  24.         #endif
  25.                  
  26.  
  27.       // Application-specific tasks.
  28.       // Application related code may be added here, or in the ProcessIO() function.
  29.         ProcessIO();
  30.  
  31.        
  32.         sprintf(buf, "Temp: %3.1f", ds1629_temperatura());
  33.         SendDataBuffer(UART_RS232, buf, strlen(buf));
  34.         lcd_gotoxy(1,1);
  35.         SendLCDBuffer(buf, strlen(buf));
  36.  
  37.         ds1629_get_date(&dia,&mes,&ano,&diasem);
  38.         ds1629_get_time(&hora,&minuto,&segundo);
  39.         sprintf(buf, "%02u/%02u/%02u %02u:%02u:%02u ",dia,mes,ano,hora,minuto,segundo);
  40.        
  41.     SendDataBuffer(UART_RS232, buf, strlen(buf));
  42.         lcd_gotoxy(1,2);
  43.         SendLCDBuffer(buf, strlen(buf));    
  44.  
  45.         sprintf(buf, "1-3: %4X %4X %4X", mtouch_estado(1),mtouch_estado(2),mtouch_estado(3));
  46.         lcd_gotoxy(1,3);
  47.         SendLCDBuffer(buf);    
  48.        
  49.         sprintf(buf, "4-5: %4X %4X %4X", mtouch_estado(4),mtouch_estado(5),mtouch_estado(6));
  50.         lcd_gotoxy(1,4);
  51.         SendLCDBuffer(buf);
  52.  
  53.         delay_ms(100);
  54.        
  55.         if (mtouch_estado(6))
  56.                 break;
  57.  
  58.         SendLCDBuffer("\f");
  59.        
  60.         x=1;
  61.         y=1;
  62.         while (1) {
  63.                 lcd_gotoxy(x,y);
  64.                 sprintf(buf, "%c", 255);
  65.                 SendLCDBuffer(buf);
  66.                 HaPulsado=0;
  67.                 lcd_gotoxy(x,y);
  68.                 if (mtouch_estado(1)) {
  69.                         y--;
  70.                         if (y==0) y=1;
  71.                         HaPulsado=1;
  72.                 }      
  73.                 if (mtouch_estado(5)) {
  74.                         y++;
  75.                         if (y==5) y=4;
  76.                         HaPulsado=1;
  77.                 }      
  78.                 if (mtouch_estado(2)) {
  79.                         x--;
  80.                         if (x==0) x=1;
  81.                         HaPulsado=1;
  82.                 }      
  83.                 if (mtouch_estado(4)) {
  84.                         x++;
  85.                         if (x==21) x=20;
  86.                         HaPulsado=1;
  87.                 }      
  88.                 if (HaPulsado) {
  89.                         delay_ms(250);
  90.                         SendLCDBuffer(" ");
  91.                 }      
  92.  
  93.         };

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Librería mTouch PIC32
« Respuesta #3 en: 20 de Noviembre de 2011, 17:00:41 »
Ahora si!!
Tanto cambia la sintaxis de C32 respecto a C18 ??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re: Librería mTouch PIC32
« Respuesta #4 en: 20 de Noviembre de 2011, 17:08:43 »
La sintaxis no cambia nada, es C.
Lo que sí cambia es la manera de tratar el micro y sus periféricos.

Desconectado Diego Gonzalez

  • PIC18
  • ****
  • Mensajes: 323
    • Visita mi web sobre electronica,fisica,mecanica y demas temas....
Re: Librería mTouch PIC32
« Respuesta #5 en: 17 de Diciembre de 2011, 06:00:38 »
Muy bueno!
Visita mi web sobre electronica,fisica,mecanica y demas temas....

http://sites.google.com/site/skygaps/Home

Desconectado Vtronic

  • PIC16
  • ***
  • Mensajes: 121
Re: Librería mTouch PIC32
« Respuesta #6 en: 17 de Diciembre de 2011, 15:43:33 »
Se mira muy funcional para una aplicación final pero por ahora estoy con los 24FJ al salir entro a c32.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1890
    • Sicoy
Re:Librería mTouch PIC32
« Respuesta #7 en: 19 de Febrero de 2023, 11:17:48 »
Hoy le toca el turno a la librería mTouch. Es una adaptación a mi aplicación de un ejemplo de Microchip, por lo que recomiendo a los puristas que recurran a mTouchCap_PIC32MX_DirectKeyDemo porque es más completo y versátil que mi adaptación.

En esta librería he quitado todo lo que me sobraba y creo que ha quedado sencillita.

Los ficheros los tenéis adjuntos; a continuación, el vídeo.


Hola

Estoy buscando alternativas a QTouch.

¿Funcionan los botones con una lámina de acrílico o policarbonato de 5 mm de espesor?

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re:Librería mTouch PIC32
« Respuesta #8 en: 19 de Febrero de 2023, 12:09:07 »
Yo en su día los probé con éxito a través de un metacrilato de 8mm.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1890
    • Sicoy
Re:Librería mTouch PIC32
« Respuesta #9 en: 19 de Febrero de 2023, 12:25:29 »
Yo en su día los probé con éxito a través de un metacrilato de 8mm.

Recuerdo que hace varios años, cuando estábamos buscando opciones para botones touch, teníamos una placa de darrollo PIC24F con unos 5 botones touch.



Descargamos el ejemplo touch de esa placa y funcionaba correctamente, pero al colocar una lámina de acrílico de 5 mm, no funcionaba. Ese código no lo hicimos nosotros, era que el que MCHP proporcionaba y supuestamente estaba correctamente creado.

Esa fue  la razón de usar QTouch, la cual funciona sin problemas.

La escasez de semiconductores, nos esta planteando buscar alguna alternativa de características similares o superiores a Qtouch.



Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18271
    • MicroPIC
Re:Librería mTouch PIC32
« Respuesta #10 en: 19 de Febrero de 2023, 12:29:21 »
Pero si estaban calibrados para tocarlos directamente es lógico que no te funcionaran con una placa encima.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1890
    • Sicoy
Re:Librería mTouch PIC32
« Respuesta #11 en: 19 de Febrero de 2023, 12:42:45 »
Pero si estaban calibrados para tocarlos directamente es lógico que no te funcionaran con una placa encima.

Recuerdo que abrí un ticket técnico en el soporte de MCHP con respecto al caso, la ayuda fue muy buena y las explicaciones muy claras, pero el problema, era que si deseaba que dicho botones funcionen con un acrílico de ese grosor, debía crear unos botones mucho mas grandes, y ese no era nuestro objetivo.

También investigando en varios foros en inglés, alguien me indicó que los sistemas de touch se basan en la carga y descarga de capacitores (creados con los botones), y el porqué del correcto funcionamiento de QTouch con botones pequeños (8mm x 8mm) era que no era exactamente un proceso de carga y descarga de voltaje.

Qtouch se base en emitir un pulso en un electrodo y en el otro se escucha un eco radioeléctrico. La demora entre la emisión del pulso y la recepción se usaba apara detectar que un botón ha sido "tocado", y esa era la clave de que funcione con un  acrílico de 5 mm o más.

Todo eso que he contado fue como hace unos 15, 18 años. Ha estas alturas me imagino que la competencia con respecto a esa tecnología debe estar igualando a lo que tenia Atmel (ahora MCHP).

« Última modificación: 19 de Febrero de 2023, 13:31:02 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32