hallo
ich bin ein avr anfänger und ich versuche gerade mit der UART
schnittstelle des Atmega8 zu experimentieren.wenn ich die baurate in
meinen code ab 57600 einstelle bekomme ich ja nur müll sonst niedriege
baurate hats bis jetzt geklappt.
meine uart initialisierung sieht so aus
void USART_Init( unsigned int ubrr) //USART initialization subroutine
{
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
UCSR0C = (1<<USBS0)|(3<<UCSZ00);
}
.
#define BAUDRATE 9600
#define UBRRVAL ((F_CPU/(BAUDRATE*8UL))-1)
//Set baud rate
UBRRL=UBRRVAL; //low byte
UBRRH=(UBRRVAL>>8); //high byte
UCSRA = 0;
/* Enable Receiver and Transmitter and receiver interrupt */
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<URSEL)|(3<<UCSZ0);
ISR(USART_RXC_vect)
{
//interrupt routine
}
//zum senden
while (!(UCSRA&(1<<UDRE)));
UDR = "ein byte was du senden willst";
Das URSEL Bit ist zumindest beim Mega16 ganz wichtig, hab ich gelernt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.