Holaaa estoy aqui de nuevo listo para meteros la petardada, despues de haber acabado los examenes... jejeje
Resulta que se me ha perdido la placa MAX232 que tenia, y nada, cogi 2 resistencias y me hice una interfaz de esas cutres:
TXD------20k--------rx pic
RXD------1k---------tx pic
GND------------------gnd pic
La pega es que la usart debe funcionar en modo invertido... pero como la usart por hardware de mi 18f458 no se puede invertir pues implemento por software:
Codigo:
#include <18f458.h>
#fuses HS,NOWDT
#use delay(clock=20000000)
#use rs232(baud=9600, bits=8,parity=N,xmit=PIN_C6,rcv=PIN_C7,INVERT,FORCE_SW,DISABLE_INTS)
El programa es bien simple, cuando reciba algo, mandar un eco...
Codigo:
while(1)
{
if(kbhit())
{
putc(getc());
}
}
Pues bien... mediante un programa visual basic para mandar datos, intento comprobar todo el tinglado.... y fijaros que curioso!
envio "HOLA" y recibo "HL" ... y si envio "H.O.L.A" recibo "HOLA"...
osea, dicho a grosso modo, el pic coge un caracter, descarta el otro, coge uno, descarta el otro...
El pic es un 18f458 a 20mhz (aunq en el codigo se ve)... y yo ya no se que hacer...
ayudadme plz! jejeje