TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ranica en 30 de Mayo de 2003, 06:51:00

Título: hacer libreria usart
Publicado por: ranica en 30 de Mayo de 2003, 06:51:00
 Hola, estoy buscando una librería para la usart, yo utilizo el programa ccs.
Lo que pretendo es utilizar cualquier pin del micro para enviar y recibir datos como la usart que tiene el pic. Esto es así ya que la usart ya la esto utilizando.
¿Donde puedo conseguir esta librería?¿Alguien me puede ayudar?Grácias.
Título: RE: hacer libreria usart
Publicado por: pikman en 30 de Mayo de 2003, 08:30:00
Hola, Ranica,
                    Mira, no se que version usas de CCS pero no tenes nada que hacer solo usar #use rs232, podras usarlo en cualquier microcontrolador si este posee la USART la usa y si no hace el firmware, en la pagina 47 del manual esta explicado,  la forma es asi

#use s232baud=4800,parity=N,xmit=PIN_B6,rcv=PIN_B7)

espero que te sirva.

saludos

Ariel

Título: RE: hacer libreria usart
Publicado por: pikman en 30 de Mayo de 2003, 20:14:00
Ranica, si es posible usar mas de una usar y si le puedes poner pines distintos solo que si haces esto en un 16F87x perdes la ventaja del modulo usart de hard que tienen, en la pagina 177 del manual esta el ejemplo que mas abajo te pongo, espero que te sirva.

un saludo.

Ariel

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 ) {
char  get_from_a( ) {
   put_to_a("Onlinenr");
  put_to_b(c);
  put_to_a(c);
 printf("Onlinenr");
#USE RS232(BAUD=9600, XMIT=PIN_B2,RCV=PIN_B3)
   put(c);
}
 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_b("Onlinenr");
   while(TRUE) {
  c=get_from_a();
   }
}
 
The following will do the same thing but is less readable:
 
main()  {
char c;
#USE RS232(BAUD=9600, XMIT=PIN_B0, RCV=PIN_B1)
#USE RS232(BAUD=9600, useXMIT=PIN_B2,RCV=PIN_B3)
 printf("Onlinenr");
 while(TRUE) {
#USE RS232(BAUD=9600, XMIT=PIN_B0, RCV=PIN_B1)
 c=getc();
 putc(c);
#USE RS232(BAUD=9600, XMIT=PIN_B0, RCV=PIN_B1)
 putc(c);
}