Hola estoy intentando comunica mi dspic 30f3013 mediante el hyperterminal y en este me aparecen simbolos y cosas raras, segun yo configure para que los 2 trabajen a 9600 baud, 8bits,1 bit de parada y ninguno de paridad y sin control de flujo, les dejo el codigo para ver si alguien me puede dar una mano:
#include <p30f3013.h>
#include <stdio.h>
#include <stdlib.h>
#include <uart.h>
#include <libpic30.h>
#define FCY 3582056
_FOSC(CSW_FSCM_OFF & FRC & XT);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);
#define ISR __attribute__((interrupt, no_auto_psv))
char texto[]={'h','o','\0'};
//Main
int main()
{
void init(),send(char data);
init();
send(texto);
return(0);
}
void init()
{ //UART Config
U1BRG=23; //Baud_Rate=9600 with Error=0.042%
U1MODE=0x0000; //8,N,1
U1MODEbits.UARTEN = 1; // Enable UART
U1STA=0x0000;
IFS0bits.U1TXIF=0;
_U1RXIP=4;
U1MODEbits.UARTEN=1; //Enables UART1 // siempre este debe ir antes del q sigue
U1STAbits.UTXEN=1;
TRISD=0x0000;
TRISB=0x000F;
}
void send(char x)
{
while(U1STAbits.UTXBF==1) continue; //Checks if Buffer is Full and w8ts for it to have one location empty
// for(j=0;j==i;j++){
U1TXREG=x;
while(U1STAbits.TRMT==0) continue; //Loops till Transmition is over
TRISD=0xff; //Todos como entrada menos D8.-
LATDbits.LATD8 =1;// Si esta en 0 Encendemos leds.
}