Forum: Mikrocontroller und Digitale Elektronik atmega2561 datenblatt und usart


von Philipp Karbach (Gast)


Lesenswert?

Versuche gerade eine serielle Verbindung zu einem PC aufzubauen. Meine 
platine hat einen Max232 und mega2561 controller. Der Beispielcode im 
Datenblatt lässt sich nichtmal kompilieren, die register sind falsch 
angegeben. Kann irgendjemand eine Aussage machen ob das funktioniert? 
(oder könnte?).

#include <avr/io.h>

#define FOSC 8000000// Clock Speed
#define BAUD 9600
#define MYUBRR (FOSC/16/BAUD-1)

void USART_Init( unsigned int ubrr){
/* Set baud rate */
UBRR1H = (unsigned char)(ubrr>>8);
UBRR1L = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSR1B = (1<<RXEN1)|(1<<TXEN1);
/* Set frame format: 8data, 2stop bit */
UCSR1C = (1<<USBS1)|(3<<UCSZ10);
} // USART_Init

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSR1A & (1<<UDRE1)) )
;
/* Put data into buffer, sends the data */
UDR1 = data;
}

int main()
{
USART_Init ( MYUBRR );
while(1) {
  USART_Transmit('A');
}

return 0;
} // main


Werde gleich mal mit dem Oszi messen ob da überhaupt was aus dem Port 
rauskommt aber der PC zeigt gar nichts an, hab auch schon am kabel 
rumgespielt etc. Ich versteh das nicht...

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
Noch kein Account? Hier anmelden.