TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: iamdari en 11 de Enero de 2011, 06:24:13

Título: transmisión serie rs232 usart
Publicado por: iamdari en 11 de Enero de 2011, 06:24:13
me ha surgido un problemilla programando a ver si m podeis ayudar ...
el problema que tengo cuando simulo con proteus es que el master no envia nada, por lo tanto el esclavo toma valor aleatorio en la variable valor.

codigo master:

#include <16f876.h>
#use delay(clock=4000000)
#use fast_io(c)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
#include <lcd.c>
#use standard_io(b)


void main(){

   int valor;
   port_b_pullups(true);
   set_tris_b(0x00);
   set_tris_c(0x80);
   lcd_init();
   
   while(1){
   for (valor=0;valor<=10;valor++){
   putc(valor);
   printf(lcd_putc,"\fEnviando %1D",valor);
   delay_ms(500);}
   }
}


codigo slave:

#include <16f876.h>
#fuses xt,nowdt
#use delay(clock=4000000)
#use fast_io(c)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits =8)
#include <lcd.c>
#use standard_io(b)

int valor;
#int_rda
rda_isr(){
valor=getc();
}

void main(){
   
   port_b_pullups(true);
   set_tris_b(0x00);
   lcd_init();
   
   
   enable_interrupts(int_rda);
   enable_interrupts(global);
   
   for(;;){
   lcd_gotoxy(1,1);
   printf(lcd_putc,"\fReciviendo %1d",valor);
   }}
Título: Re: transmisión serie rs232 usart
Publicado por: MLO__ en 11 de Enero de 2011, 10:43:12
Hola.

Asumiendo que la configuración del TRIS este bien, prueba sumar 0x30 a valor para recibir el ASCII porque los primeros valores del ASCII no se visualizan. No olvides configurar los FUSES en el transmisor también.

Saludos
Título: Re: transmisión serie rs232 usart
Publicado por: iamdari en 11 de Enero de 2011, 13:20:34
Buenas!!!! Muchas gracias por contestar mi duda. Aún así no se ha solucionado. ¿Qué puede fallar? me cabrea que algo tan simple no funcione....
Si me pueden ayudar se lo agradecería muchisimo!!!

Un saludo
Título: Re: transmisión serie rs232 usart
Publicado por: jhozate en 11 de Enero de 2011, 13:35:43
faltan los fuses del master..no?
Título: Re: transmisión serie rs232 usart
Publicado por: iamdari en 11 de Enero de 2011, 14:06:21
Ya los he puesto pero nada.... pufff... no lo entiendo... por favor ruego que me ayudeis!! es para un proyecto y si esto no m funciona no puedo continuar.

un saludo , muchas graciass
Título: Re: transmisión serie rs232 usart
Publicado por: iamdari en 11 de Enero de 2011, 14:39:39
He cambiado el pic 16f876 por el 16f877 y ya funciona....

este proteus que bueno es pero que guerra da!!xDD

Título: Re: transmisión serie rs232 usart
Publicado por: MGLSOFT en 11 de Enero de 2011, 14:41:44
Si pusieras los fuentes de ambos PIC y el archivo DSN del Isis, seria mas facil ayudarte.
Si los compactas en un archivo menor a 255 kb puedes adjuntarlos en el mismo post, clickeando en Opciones adicionales permite adjuntar archivos.
Título: Re: transmisión serie rs232 usart
Publicado por: MGLSOFT en 11 de Enero de 2011, 14:43:49
Seguramente es la configuracion del LCD, que debe estar puesto al PortD, que el 876 no lo tiene...