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í:
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!!!
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!!!