TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: arcadi en 10 de Junio de 2008, 13:15:17

Título: Saltos en Hiperterminal de Windows
Publicado por: arcadi en 10 de Junio de 2008, 13:15:17
Hola a todos!!!!

Bien, esta tarde he estado probando el Rs-232 con el HiperTerminal de Windows Xp. He visto que no se pone el cursor en el origen (como se ve a la imagen). ¿Como lo tengo que hacer para que se ponga en el origen?

--------------Codigo---------------------------

#include <16f876a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)


int a;

void main (void)
{

a=0;
printf("Hola a tots");
printf("\n");
printf("\n");
printf("Ara contare segons:");
printf("\n");
printf("\n");
while (true)
   {
   a=a+1;
   delay_ms (1000);
   printf("%d",a);
printf("\n");
   
   }

}

-------------------------------END------------------------------------



Muchas gracias a todos  :-)
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: RICHI777 en 10 de Junio de 2008, 13:25:41
Hola, el "\n" significa "new line" es decir salta a la linea siguiente, el "\r", es carriage return es decir vulve el cursor al comienzo de la corriente fila.

Saludos !
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: arcadi en 10 de Junio de 2008, 13:26:27
Ok gracias, tema solucionado.
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: arcadi en 10 de Junio de 2008, 14:36:01
Hola;

me ha surgido una duda, ¿Como puedo capturar frases des del hiperterminal? he probado scanf y no se puede

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

char a;

void main (void)
{

a=getc();


if (a="patata") { printf ("es mala para tu cuerpo"); }
else { printf("es buena"); }


}


Muchas gracias
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: firepic en 10 de Junio de 2008, 14:45:21
Justamente como lo estás haciendo. Con la instrucción "getc()" puedes capturar un caracter vía rs232.
La cosa es que captura sólo eso, un caracter. Si quieres leer varios caracteres tendrás que hacer un while...
Yo te aconsejaría que hicieras un código más simple, de recibir un caracter y enviarlo al hyperterminal... de esa forma verías en el hyperterminal la tecla que has pulsado. Luego ya puedes irle añadiendo más cosas.
Por otro lado, estás declarando la variable a como char, así que nunca se va a cumplir ese if... pues lo único que puede guardar a es un caracter.
Tendrías que declarar un arreglo, algo así como "char a[6];" si lo que vas a recibir son seis caracteres.
Luego puedes usar otra variable, por ejemplo "i" como índice... y al leer los distintos valores dirías algo así como:
Código: [Seleccionar]
a[i]=getc();
...de esta forma puedes ir guardando los caracteres en las diferentes posiciones del arreglo (variando los valores de i).
Ok saludos, nos leemos!  :mrgreen:

P.D.:
if (a="patata") { printf ("es mala para tu cuerpo"); }
else { printf("es buena"); }
Recuerda que si el código que vas a ejecutar si se cumple el if o el else está compuesto de una sóla instrucción, no hacen falta las llaves.
Quedaría más elegante:
Código: [Seleccionar]
if (a="patata") printf ("es mala para tu cuerpo");
else printf("es buena");
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: arcadi en 10 de Junio de 2008, 14:49:07
OK Exelente respuesta

Ahora mismo lo pongo en practica XD
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: MLO__ en 13 de Junio de 2008, 16:53:28
Hola.

El maestro Diego RedPic tiene ejemplos en procesador de comandos via RS232 (con Buffer de recepcion) (http://picmania.garcia-cuervo.com/PICC.php#COMBUF232)
Excelente.

Saludos
Título: Re: Saltos en Hiperterminal de Windows
Publicado por: firepic en 13 de Junio de 2008, 17:40:36
Muy buen link, gracias MLO!
Saludos, nos leemos!  :mrgreen: