Autor Tema: dudas con touch.c  (Leído 1327 veces)

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

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
dudas con touch.c
« en: 06 de Diciembre de 2015, 17:26:29 »
Hola, alguien puede explicar este código:
Lo saque de los ejemplos de CCS

Código: [Seleccionar]
void main(void) {
  byte buffer[8];
   byte i;
   fprintf(soft_uart,"\r\nEsperando...\r\n"); 
 
   while (TRUE) {
     while(!touch_present()){
     delay_ms(200);
     if(touch_present()) {
        touch_write_byte(0x33);
        for(i=0;i<8;++i)
           buffer[i]=touch_read_byte();
           fprintf(soft_uart,"Tipo: %2X  ID: ",buffer[0]);
        for(i=6;i!=0;--i)
         fprintf(soft_uart,"%2X",buffer[i]);
         fprintf(soft_uart,"\r\n");delay_ms(1000);
     }
   }
}
}


Lo entiendo un poco, pero tengo dudas de como funciona esos "for" si les pongo {} funciona diferente.
el código funciona como quiero, pero necesito el buffer en forma string para usarlos en otra parte del código,
alguien me puede ayudar por favor, intento imprimir con "%s" no da.
Gracia.



Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:dudas con touch.c
« Respuesta #1 en: 06 de Diciembre de 2015, 21:33:48 »
Sin saber de que driver de touch se esta hablando es un poco complicado saber que se esta haciendo.

Y en el datasheet debe indicar exactamente que es lo que se envia y recibe

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
Re:dudas con touch.c
« Respuesta #2 en: 07 de Diciembre de 2015, 02:01:19 »
Sin saber de que driver de touch se esta hablando es un poco complicado saber que se esta haciendo.

Y en el datasheet debe indicar exactamente que es lo que se envia y recibe
Si, tienes razón.
Uso la llave dallaskey DS1990A, el código funciona. en realidad la pregunta es como convierto ese arreglo de hex en string.
Código: [Seleccionar]
for(i=0;i<8;++i)
 buffer[i]=touch_read_byte();

 ahí obtengo el ID de la llave, pero quiero guardarlo en un string, para usarlo en otra parte del código.
¿me puedes decir como funciona ese for? si le escribo los {} no funciona.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:dudas con touch.c
« Respuesta #3 en: 07 de Diciembre de 2015, 04:09:00 »
Lo que no entiendo es para que....

el for al no tener llaves, solamente repite la instruccion inmmediata y nada mas. es decir solo:

 buffer=touch_read_byte();

Resumiendo es lo mismo que :

        for(i=0;i<8;++i) { buffer=touch_read_byte(); }

Citar
en realidad la pregunta es como convierto ese arreglo de hex en string.

 fprintf(soft_uart,"%2X",buffer);

Lo unico que se me ocurre de querer pasarlo a string es para enviarlo por una UART  o algo por el estilo y que tenga que ser legible para el usuario, sino no tiene sentido hacerlo.
Realmente no se por que te gastarias tenerlo en 8 bytes y pasar a ocupar 17

Desconectado cvargcal

  • PIC16
  • ***
  • Mensajes: 166
Re:dudas con touch.c
« Respuesta #4 en: 08 de Diciembre de 2015, 01:17:05 »
Lo que no entiendo es para que....

el for al no tener llaves, solamente repite la instruccion inmmediata y nada mas. es decir solo:
...

Bien, gracias.