TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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 :-)
-
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 !
-
Ok gracias, tema solucionado.
-
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
-
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:
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:
if (a="patata") printf ("es mala para tu cuerpo");
else printf("es buena");
-
OK Exelente respuesta
Ahora mismo lo pongo en practica XD
-
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
-
Muy buen link, gracias MLO!
Saludos, nos leemos! :mrgreen: