Hola amigos,
Buenos dias a todos.
Quisiera saber si alguien me puede ayudar a solventar un problema que tengo con la comunicacion RS232.
Estoy tratando de hacer un programa en donde todo corre bien, pero la transmision de datos mediante RS232 no la logro.
El puerto SI envia datos, mas estos son erroneos (Envio K y recibo F8F8)
Realmente no se si es un problema del simulador o no.
Agradezco la ayuda de ustedes y muchisimas gracias.
Les cuelgo el codigo y capturas.
Estoy usando proteus 8.8.
Solia trabajar con el 8.1 y no tenia ningun tipo de problemas,
no se si sea el simulador, o la programadora jaja..
Gracias
CODE:
#INCLUDE <16f887.h>
#device adc=10
#USE DELAY(CRYSTAL=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
long bits; //Variable almacena los bits
float tem; //Almacena la temperatura
char caracter='K';
void main()
{
set_tris_a(0b00000001); //Pongo el RA0 como entrada
setup_adc_ports(all_analog); //Pongo todo el puerto a analogo
setup_adc(adc_clock_internal); //Selecciono reloj interno para conversion
while(1)
{
set_adc_channel(0); //Selecciono el canal 0 (RA0)
delay_ms(1); //llamo retardo de 1 ms
bits=read_adc(); //Guarde el dato del LM en tempe
tem=bits*0.4882; //Conversion de bits a temperatura
//printf("\rLa Temperatura es: %2.3f C\r\n",tem);
printf("%c",caracter); //QUIERO ENVIAR SOLO ESTE DATO. DEBERIA RECIBIR K o DECIMAL 75 o 0x4B
delay_ms(1000);
}
}