PROBLEMA PIC - PC

Tengo un problemilla con la comunicacion , realizada mediante un circuito max 232... sucede que al efectuar un programa muy sencillo me doy cuenta de que al ejecutar el programa en el pic y el hyperterminal es como si estubiera eternamente pulsando una tecla aunque no lo haga.

No se por que sucede esto, he tratado de solucionar el problema con la ayuda del PICC lo que me llevó a pensar que mi problema quizas se solucione así:

5. The PIC® is always receiving data via RS-232 even when none is being sent.

A. Check that the INVERT option in the USE RS232 is right for your level converter. If the RCV pin is HIGH when no data is being sent, you should NOT use INVERT. If the pin is low when no data is being sent, you need to use INVERT.

Ya que al medir la señal en el pin RCV siempre esta LOW o 0

pero al tratar de incluir el "invert" en la libreria, ejemplo:
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, invert)
me aparece un error en el compilardor... mencionando algo del USART... de lo que no tengo idea...alguien me ayuda con esto que debo hacer??

Menciono ademas que cuando envio un señal desde el PIC a PC todo está correcto...

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


void main() {

printf("Press any key to begin\n\r");

getc();

printf("1 khz signal activated\n\r");

while (TRUE) {

printf("activated\n\r");
}

}
-----------------------------------------------------------------

Al ejecutar el programa con el Hyperterminal esto aparece....(sin necesidad de presionar una tecla)

Press any key to begin
1 khz signal activated
activated
activated
activated
activated
activated...... millones de veces....

Ayuda porfa!!!
 
normal y si pruebas:
while (TRUE)
{
if (kbhit()) //vamos si ha entrado algun carater
{
printf("activated\n\r"); //entoces imprime
}
}

eso por un lado, si el esquema está bien hecho y usas la uart del pic no te deja invertir (además para invertir ya usas el Max)

Por si tienes dudas en reposo los niveles para una comunicacion serie son altos y en RS232 son bajos (vamos los -12) con lo cual si los miras con un tester tienes en el pic +5 voltios y en el conector del PC -12 (o -9 en función del sistema, cualquier valor negativo vale)
 
Atrás
Arriba