Autor Tema: AYUDA CON EL C18 Y LA TRANSMISION POR RS 232!!!  (Leído 2133 veces)

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

Desconectado komun_roji

  • PIC10
  • *
  • Mensajes: 7
AYUDA CON EL C18 Y LA TRANSMISION POR RS 232!!!
« en: 31 de Agosto de 2010, 08:00:44 »
Hola a todos!!!

Era para ver si me podrias hechar una mano, ando detras del proyecto final de carrera y me estoy intentando familiriazar con el pic y too su mundillo. Ando haciendo un programilla para que el pic me envie el abecedario completo al hyperterminal a la vez que mediante un juego de led q tiene la placa con la que estoy jugando, PICDEM HPC EXPLORER BOARD, me muestre su valor hexadecimal iluminando los correspondioentes led.

Todo creo q esta mas o menos bien hecho, me estado guiando por la marivilla de tutorial de Suky, y mas o menos e sacado algo, lo malo esq el ejemplo de ese tutorial es de recepcion de datos por el pic, no de envio.
Hice un programa por mi cuenta pero lo malo esq apedar de funcionar perfectamente los led, en el hyperterminal solo me apraecen Ç, 38 para ser exactos,cuando el abecedario tiene 25, enviandome primero una despues 4, o 3, otra vez 1....Ademas de que intetnto que cuando el rs232 este transmitiendo a traves de la funcion Busyusart,  se me enciendo un led exteriror a la placa y no se me enciende.

No se donde podre tener el fallo y llevo ya una semana detras de el...Os dejo el programa aqui y si alguien me pudiera echar una manita se lo agradeceria!!!

//*includes*//

#include <p18f8722.h>
#include <p18cxxx.h>
#include <usart.h>
#include <delays.h>

//*progrmación pic*//

#pragma config OSC = INTIO67, FCMEN = OFF,IESO = OFF    //osc interno de 8Mhz
#pragma config PWRT = ON,BOREN = OFF,BORV = 0
#pragma config WDT = OFF,WDTPS = 32768
#pragma config MCLRE = ON
#pragma config STVREN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF

         
             
//*main*//

void main(void)

{

//* configuración de usart
  Open1USART( USART_TX_INT_OFF  &   //sin interrupciones de transmision

             USART_RX_INT_OFF  &   

             USART_ASYNCH_MODE &   //modo asincrono
   
             USART_EIGHT_BIT   &   //8bit

             USART_CONT_RX     &   //recepcion-envio continuo

             USART_BRGH_HIGH,51 ); // velocidad oscilador 8mhz, baud =9600//





//* intento de hacer funcionar los led, segun el valor hexadecimal de cada letra


   ADCON1=0x0F;   //**salidas/entradas digitales; 0 salidas /1 entrada
   TRISD = 0;
   TRISA = 0;
   TRISB = 1;

 

while(1){

   if (PORTBbits.RB0==1){      //Leds apagados.-
   PORTD=0;
}
    
   else {
   
   char a=0x61;

   char z=0x7A;

   for(PORTD=a;PORTD<=z;PORTD++){

   Write1USART( PORTD );

   
   Delay10KTCYx(15);            //retardo entre letra y letra
while (Busy1USART()==1){      //mientras usart transmita encender led aparte de la placa
    LATAbits.LATA1=1;
      }      
   
   }
Close1USART();

}
}   
}

Esperando alma caritativa q responda, gracias por adelantado!!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: AYUDA CON EL C18 Y LA TRANSMISION POR RS 232!!!
« Respuesta #1 en: 31 de Agosto de 2010, 11:05:03 »
Hola  komun_roji. Habrá muchas más almas caritativas si no rompes las reglas del foro. Todo el titulo en mayúscula, y con la palabra ayuda, hace que muchos se salteen el post.  :?

Así como está debería de enviar los caracteres correctamentes, salvo que esté mal configurado el oscilador interno y no esté trabajando a 8MHz. Revisa el datasheet, seguramente en el main hay que setearlo a 8 MHz.

Luego para trabajar correctamente con los registros PORT y LAT, y para que veas el led prendido deberías hacerlo de la siguiente forma:


Código: C
  1. for(LATD=a;PORTD<=z;LATD=++PORTD){
  2.                
  3.                                 Write1USART( PORTD );
  4.                                 while (Busy1USART()==1){      //mientras usart transmita encender led aparte de la placa
  5.                                         LATAbits.LATA1=1;
  6.                                 }      
  7.                    
  8.                         }


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado komun_roji

  • PIC10
  • *
  • Mensajes: 7
Re: AYUDA CON EL C18 Y LA TRANSMISION POR RS 232!!!
« Respuesta #2 en: 01 de Septiembre de 2010, 05:25:55 »

Muchas gracias por la respuesta suky!!

Ya ta solucionado, era la velocidad del micro, porque cambie el valor de la velocidad del hyperterminal y me funciono, se me ocurre eso despues de una semana... porq el valor de spbrg lo habia mirado en unas tablas y daba por supuesto q taba bien, pero por la pinta no era asi.

Si nos por ti entre esto y tu tutotial no se si habria hecho algo... gracias!!!


 

anything