Hallo,
ich habe ein Ethernet-Board mit ENC28J60 und einem ATMEGA1284, von dem 
aus ich gerne per UART Zeichen über TX0 senden würde. Ich sende aber nur 
Müll und fürchte, dass ich die Baud-Rate nicht richtig eingestellt habe 
oder der UART irgendwie mit dem Ethernet-Kram interferiert.
Ethernet selbst funktioniert soweit prima. Das Teil ist ein ganz simpler 
Webserver und baut auf der tuxgraphics-lib auf 
(http://tuxgraphics.org/electronics/200606/article06061.shtml).
Ich benutze den ungeteilten RC-Takt des AVR und nicht die 12,5MHz des 
ENC. Ich hatte zunächst die Peter Fleury-UART-lib verwendet. Da kam aber 
gar nichts raus. Dann hab ich mir den UART nach dem Wiki-Artikel und 
nach dem Datenblatt des 1284 aufgebaut:
1  | #define F_CPU 8000000UL
  | 
2  | #define BAUD 9600UL      
  | 
3  | #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
  | 
4  | 
  | 
5  | 
  | 
6  | void USART_Init() {
 | 
7  |   UBRR0H = (unsigned char)(UBRR_VAL>>8);
  | 
8  |   UBRR0L = (unsigned char)UBRR_VAL;
  | 
9  |   UCSR0B |= (1 << TXEN0);
  | 
10  |   UCSR0C = (1<<UCSZ01);
  | 
11  | }
  | 
12  | 
  | 
13  | int uart_putc(unsigned char c) {
 | 
14  |   while (!(UCSR0A & (1 << UDRE0)))
  | 
15  |     ;
  | 
16  |   UDR0 = c;
  | 
17  |   return 0;
  | 
18  | }
  | 
Falls es von Interesse ist, ich benutze 'Moderate Optimizations'
Kann mir jemand damit helfen?