Hola , no estoy muy puesto en esto de los foros , pero es que tengo un problemilla con la uart y no se que hacer , haber si podeis ayudarme.
El problema es que configuro la uart le pongo a transmitir y en el hiperterminal no aparece nada, pero he medido con el osciloscopio y en la patilla 14 del max232 (2 del conector) tengo señal y creo que el programa lo tengo bien ,lo adjunto por si alguien le puede dar un vistazo.
#include <p30f4013.h>
#include <uart.h>
//FUSES
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FGS(CODE_PROT_OFF);
_FWDT( WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_DIS & PWRT_OFF) ;
//funcion que inicializa los puertos
void Puertos(void)
{
TRISCbits.TRISC14=0;
LATCbits.LATC14=0;
PORTCbits.RC14=0;
}
//INCIALIZACION Y CONFIGURACION UART
void CONFI_uart (void)
{
unsigned int baudvalue;
unsigned int U1MODEvalue;
unsigned int U1STAvalue;
CloseUART1();
ConfigIntUART1(UART_RX_INT_DIS & UART_RX_INT_PR6 & UART_TX_INT_DIS & UART_TX_INT_PR2);
baudvalue = 191; //para tener 9600 baudios con un cristal de 7.378Mhz
U1MODEvalue = UART_EN & UART_IDLE_CON & UART_RX_TX &
UART_DIS_WAKE & UART_DIS_LOOPBACK &
UART_DIS_ABAUD & UART_NO_PAR_8BIT &
UART_1STOPBIT;
U1STAvalue = UART_INT_TX_BUF_EMPTY &
UART_TX_PIN_NORMAL &
UART_TX_ENABLE &
UART_INT_RX_BUF_FUL &
UART_ADR_DETECT_DIS &
UART_RX_OVERRUN_CLEAR;
OpenUART1(U1MODEvalue, U1STAvalue, baudvalue);
}
int main (void)
{
Puertos();
CONFI_uart();
unsigned int i=0 ;
//activacion uart y envio de mensaje
while(1)
{
i=0;
PORTCbits.RC14=1; //ENCIENDO UN LED PARA VER EL ESTADO DEL PROGRAMA
char Txdata[]= {'X','i','m','o','\n'};
for(i=0;i<5;i++)
{
U1TXREG=(Txdata);
while(U1STAbits.TRMT==0);
}
}
}