Autor Tema: ¿Como recibir datos por RS232 desde PC a PIC16f818? [getc(); no funciona]  (Leído 2220 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado polimetro

  • PIC10
  • *
  • Mensajes: 6
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
Código: [Seleccionar]
printf("%ld\r\n", Variable_int16_a_enviar);
ya que un

Código: [Seleccionar]
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
Código: [Seleccionar]
#use rs232(baud=1200, xmit=pin_b6, rcv=pin_b7)
Con el pic16f876 lo hacia mediante la interrupcion RDA


   Por ejemplo:
Código: [Seleccionar]
/******************************************************************************/
/*************  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





Código: [Seleccionar]
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

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: ¿Como recibir datos por RS232 desde PC a PIC16f818? [getc(); no funciona]
« Respuesta #1 en: 05 de Mayo de 2013, 14:15:24 »
No recuerdo si ese micro tiene rs232 por hardware, pero para saber si tienes datos en el buffer usa la función kbhit y si tienes datos entonces usas el getc
"Nada es imposible, no si puedes imaginarlo"

Desconectado polimetro

  • PIC10
  • *
  • Mensajes: 6
Re: ¿Como recibir datos por RS232 desde PC a PIC16f818? [getc(); no funciona]
« Respuesta #2 en: 13 de Mayo de 2013, 13:43:47 »
Lo siento pero no te he entendido.

Tambien he provado el mismo metodo con el 16f877 y tampoco funciona

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: ¿Como recibir datos por RS232 desde PC a PIC16f818? [getc(); no funciona]
« Respuesta #3 en: 13 de Mayo de 2013, 14:52:00 »

Porque no pones toda la función main(), ya que puede ser un problema de configuración de la interrupción o de algún modulo que interfiere en el protocolo rs232.
Un saludo desde Pereira - Colombia


 

anything