Hola, tengo un problema algo raro. Cuando transmito varios bytes por la usart al 3 byte me salta error en el bit OERR. Pero lo raro es que yo no estoy utilizando RX, ni tengo el pin contectado!! Que puede ser!
Alguna ayuda? quiero entender que pasa. Yo lo solucione a lo bruto con
RCSTAbits.CREN=0;
RCSTAbits.CREN=1;
pero me sirve por ahora, ya que dsepues voy a hacer cosas mas complicadas.
gracias
Código:
//Includes
#include "p18f4550.h"
#include "delays.h"
#include "usart.h"
//Prototipos
//Bits de configuracion
#pragma config FOSC = HS, WDT = OFF, LVP = OFF, PLLDIV = 1
#pragma config VREGEN = OFF, WDTPS = 1, XINST = OFF, DEBUG = OFF
#pragma config MCLRE = ON, PWRT = ON, BOR = OFF
#pragma config PBADEN = OFF //Pines del puerto B como digitales
#pragma code
void main(void)
{
TRISB = 0b00000000; //PuertoA como salida
TRISA = 0b00000000; //PuertoB como salida
//Configuro USART
AX_SetupUSART();
AX_SendByte(0xFF); // 255
AX_SendByte(0xFF); // 255
AX_SendByte(0xFE); // 254
AX_SendByte(0x04); // 004 <<-- OERR = 1 !!!
AX_SendByte(0x03); // 003
AX_SendByte(0x19); // 025
AX_SendByte(0x01); // 001
AX_SendByte(0xE0); // 224
}
Código:
void AX_SendByte(char toSend) {
while(BusyUSART()) { //wait for transmit register to be ready
}
WriteUSART(toSend);
} //AX_SendByte()
Alguna ayuda? quiero entender que pasa. Yo lo solucione a lo bruto con
RCSTAbits.CREN=0;
RCSTAbits.CREN=1;
pero me sirve por ahora, ya que dsepues voy a hacer cosas mas complicadas.
gracias
Última edición: