Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

09/09/2010 #1


Transmision USART C18
Hola a todos,
Estoy empezando con la programacion de PIC's con el compilador C18.

Estoy intentando comunicar datos a traves de puerto serie, he hecho un pequeño programa muy sencillo, que unicamente inicializa el modulo USART y manda al puerto serie un string, pero no consigo visualizar nada.
Este es el codigo:

Código:
#include <p18f2680.h>
#include <delays.h>
#include <stdlib.h>

#include <usart.h>

                void main(void){

	         OpenUSART(USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT
		           & USART_SYNC_SLAVE & USART_CONT_RX & USART_BRGH_HIGH, 25);	
                         putrsUSART((const far rom char *)"hola");
	}
La cuestion es que no me aparece nada en el hyperterminal!!

Agradeceria mucho vuestros comentarios y sugerencias.
Un saludo
10/09/2010 #2


Respuesta: Transmision USART C18
Hola, por lo que veo trabajas a 9600bps y supongo que el hyper tambien esta a 9600.
Yo probaria de sacar USART_SYNC_SLAVE de la configuracion y usaria Printf("hola\n\r\"); en lugar de putrsUSART((const far rom char *)"hola");
13/09/2010 #3


Respuesta: Transmision USART C18
He hecho los cambios indicados, pero sigue sin funcionar.
Te pongo el codigo con los cambios realizados:

Código:
#define USE_OR_MASKS
#include <p18f2680.h>
#include "usart.h"

unsigned char Rxdata[25];

unsigned char Txdata[] = "MICROCHIP_USART";


void main(void)
{
    unsigned char config=0,spbrg=0;
    CloseUSART();  

//-----configure USART -----
    config = USART_TX_INT_OFF | USART_RX_INT_ON | USART_ASYNCH_MODE |   USART_EIGHT_BIT | USART_CONT_RX | USART_BRGH_HIGH;

    spbrg = 25;                    

    OpenUSART(config, spbrg);       

  

    while(1) {
        putsUSART((char *)"a");
    }
}
Lo que aparece ahora en el hyper son simbolos sin sentido, como X, @, etc...

Si pongo printf, en vez de putsUSART, no aparece nada...

Gracias por tu ayuda y un saludo
13/09/2010 #4


Respuesta: Transmision USART C18
Ok, voy a probar el codigo, dame un dia.

Prueba esta codigo

#include "p18f2680.h"
#include "usart.h"

unsigned char Rxdata[25];
unsigned char Txdata[] = "MICROCHIP_USART";
unsigned char config=0,spbrg=0;

void main(void)
{

CloseUSART();

OpenUSART (USART_TX_INT_OFF &
USART_RX_INT_ON &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH, 25);

//-----configure USART -----

/* config = USART_TX_INT_OFF | USART_RX_INT_OFF | USART_ASYNCH_MODE | USART_EIGHT_BIT | USART_CONT_RX | USART_BRGH_HIGH;
spbrg = 25;
OpenUSART(config, spbrg); */



while(1) {

putsUSART((char *)Txdata);
}
}


Cambie la forma de abrir el puerto
13/09/2010 #5


Respuesta: Transmision USART C18
¿¿A ti te funciona??

A mi me sale una especie de X...
Aver si va a ser problema del hyperterminal...

¿Cual es la version que tu tienes?

Gracias!!!!!
13/09/2010 #6


Respuesta: Transmision USART C18
Yo lo probe la simulacion en proteus y funciona, no lo puedo probar de otra forma porque no tengo el micro.
Tenes configurado el hyper a 9600?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.