TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: kenniata en 24 de Julio de 2007, 15:18:42

Título: RS232 sincrono
Publicado por: kenniata en 24 de Julio de 2007, 15:18:42
Buenas a todos!
Estoy intentando hacer una comunicacion sincrona entre un 16f628 y una radio que tengo. Tengo el datasheet y veo los valores que tendria que modificar para configurar a USART a modo sincrono pero no hay manera, no se como se hace. Trabajo en C y todos los ejemplos que he encontrado por el foro estan o en basic o en assambler. Alguien tiene algun ejemplo en C para que me pueda guiar?

Muchas gracias de antemano :-)
Título: Re: RS232 sincrono
Publicado por: maunix en 24 de Julio de 2007, 15:26:03
Buenas a todos!
Estoy intentando hacer una comunicacion sincrona entre un 16f628 y una radio que tengo. Tengo el datasheet y veo los valores que tendria que modificar para configurar a USART a modo sincrono pero no hay manera, no se como se hace. Trabajo en C y todos los ejemplos que he encontrado por el foro estan o en basic o en assambler. Alguien tiene algun ejemplo en C para que me pueda guiar?

Muchas gracias de antemano :-)

¿Y puedes mostrarnos lo que has intentado?
Título: Re: RS232 sincrono
Publicado por: kenniata en 24 de Julio de 2007, 16:09:58
Aqui está el código. Es simplemente una recepcion de los datos por 2 puertos distintos.
Código: [Seleccionar]
#include <16f628A.h> // Selecciona el PIC
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT // Opciones de configuración
#use delay(clock=4000000) // Velocidad del Cristal : 4 Mhz
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1,stream=radio,uart1,sync_master) // Definición del RS232
#use rs232(baud=9600,xmit=PIN_B3, rcv=PIN_B4,stream=pc)

char rx_radio,rx_pc;

#int_rda
void serial_isr() {

  if(kbhit(radio))
    rx_radio=getc(radio);   
 }

void main() {

  enable_interrupts(global);
  enable_interrupts(int_rda);
  do {
   if (kbhit(pc)) 
   rx_pc=getc(pc);   
   
  } while (TRUE);
}

La UART la configuro como maestra pero una vez ahí, no se como continuar. Los valores de BGRH, TX9, SREN... no se como cargarlos dentro del codigo y trabajar con ellos