HOla amigos, tengo un problema
Estoy utilizando un microcontrolador pic16f818 el cual se dedica a tomar muestras analogicas ,
convertirlas a digitales y enviarlas a un pc mediante un max232
El envio PIC a PC funciona muy bien
Utilizando este codigo
printf("%ld\r\n", Variable_int16_a_enviar);
ya que un
putc(Variable_int16_a_enviar);
Daba errores,
MIRA AQUI(Eso lo consulte en ESTE HILO del foro)El problema viene cuando quiero que el pic reciba los datos
En primer lugar que las primeras lineas de configuracion de RS232 estan bien
#use rs232(baud=1200, xmit=pin_b6, rcv=pin_b7)
Con el pic16f876 lo hacia mediante la interrupcion RDA
Por ejemplo:
/******************************************************************************/
/************* FUNCIÓN INTERRUPCIÓN POR RECEPCIÓN DE DATOS *******************/
#int_RDA //Interrupción por recepción de datos
void RDA_isr(){
valor=getc(); //En "valor" el dato recibido via RS232
printf(lcd_putc, "\fRecibido %d ", valor); //Se muestra en pantalla información recibida
delay_ms(500);
}
/******************************************************************************/
Pero debido a caracteristicas del proyecto , tengo que hacerlo con el 16f818 el cual no tiene interrupcion por RDA al
parecer...
Por lo cual trate de hacer que mirase getc(); dentro del while principal ...
resumiendo algo asi
void main () { // algo simple...
while(1){
PORTB=getc();
delay_ms(500);
}
}
Pero no funciona!
Y resumiendo, puedo enviar datos del Pic A la PC pero no puedo recibir ni un dato enviado desde el PC hasta el PIC
Podeis ayudarmee???
Muchas gracias