Hi, habe ein Problem mit dem Atmega2560 und dem USART2. Egal was ich mach es kommt nix gescheides an am PC - nur 0x00 und 0x80, das wars. Ich nutz den 2560 auf dem STK600. Ich bin mir eigentlich sicher, dass alles stimmt, Taktrate ist auch richtig auf 16MHz auf dem Board eingestellt. Vielleicht kann mir jemand weiterhelfen. Danke. casio #include <avr/io.h> #define F_CPU 16000000 #define BAUD 38400 #define UBRRXX (F_CPU/16/BAUD-1) void USART_transmit(unsigned char); void USART_Init(void); int main(void) { USART_Init(); for(;;) { USART_transmit('A'); } return 0; } void USART_Init(void) { PRR1 &= ~(1<<PRUSART2); //Power reduction usart2 off UBRR2H = (unsigned char) (UBRRXX>>8); //Baudrate UBRR2L = ((unsigned char) UBRRXX); UCSR2B = (1<<TXEN2); //TX enable UCSR2C = 0x06; //8N1 } void USART_transmit(unsigned char data) { while (!( UCSR2A & (1<<UDRE2))); UDR2 = data; }
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.