Autor Tema: PIC vs Emisor y modem GSM  (Leído 2140 veces)

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

Desconectado mondrarras

  • PIC10
  • *
  • Mensajes: 4
PIC vs Emisor y modem GSM
« en: 06 de Julio de 2005, 05:23:00 »
Hola a tod@s

Mi problema/duda/quebradero de cabezao no se que, es que necesito conectar un PIC a un emisor de RF y a un modem GSM.

Tengo un PIC16C74B, el cual solo posee un USART, que deberia hacer? Cambiar de micro?
 
He leido que se puede implementar la interrupcion del puerto B para enviar y recibir datos, pero el caso es que si pongo los dos a la vez creo que no va a funcionar!!!

Vamos que estoy muuuuu perdio! A ver si alguien me da una solucion, vale?

Muchas gracias y un saludo, Iñigo

NOTA:Utilizo el CSS para programar en C

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: PIC vs Emisor y modem GSM
« Respuesta #1 en: 07 de Julio de 2005, 06:40:00 »
Esto esta en la ayuda y el manual del CCS.
Permite utilizar varios puertos de comunicaciones utilizando pines que no son de la USART...


How can I use two or more RS-232 ports on one PIC®?

The #USE RS232 (and I2C for that matter) is in effect for GETC, PUTC, PRINTF and KBHIT functions encountered until another #USE RS232 is found.

 

The #USE RS232 is not an executable line.  It works much like a #DEFINE.

 

The following is an example program to read from one RS-232 port (A) and echo the data to both the first RS-232 port (A) and a second RS-232 port (B).

 

#USE  RS232(BAUD=9600, XMIT=PIN_B0, RCV=PIN_B1)

void  put_to_a( char c ) {

   put(c);

}

char  get_from_a( ) {

    return(getc()); }

#USE RS232(BAUD=9600, XMIT=PIN_B2,RCV=PIN_B3)

void put_to_b( char b ) {

   putc(c);

}

main() {

   char c;  

   put_to_a("Online
"Giño;

   put_to_b("Online
"Giño;

   while(TRUE) {

     c=get_from_a();

     put_to_b(c);

     put_to_a(c);

   }

}

 

The following will do the same thing but is less readable:

 

#USE RS232(BAUD=9600, XMIT=PIN_B0, RCV=PIN_B1, STREAM=COM_A)

#USE RS232(BAUD=9600, XMIT=PIN_B2, RCV=PIN_B3, STREAM=COM_B)

   

   main() {

      char c;

      fprintf(COM_A,"Online
"Giño;

      fprintf(COM_B,"Online
"Giño;

      while(TRUE) {

        c = fgetc(COM_A);

        fputc(c, COM_A);

        fputc(c, COM_B);

      }

    }





Espero te haya sido de ayuda....Sonrisa GiganteSonrisa GiganteSonrisa Gigante
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado mondrarras

  • PIC10
  • *
  • Mensajes: 4
RE: PIC vs Emisor y modem GSM
« Respuesta #2 en: 11 de Julio de 2005, 04:41:00 »
 Gracias, ya lo probare y os comento como me ha ido . . . (espero que bien Muchas risas)

  Un saludo a tod@s