Atmega32 und UART (Peter Fleury)

Gast #3069420
Lesenswert?

Hi alle zusammen,
wie der Titel schon sagt, habe ich ein Problem mit dem atmega32, dem 
UART bzw. genauer gesagt mit der Lib von Peter Fleury.

Was definitiv läuft:
- Atmega8 mit der Lib von Peter Fleury
--> macht alles so, wie ich es mir vorstelle

- Atmega32 mit dem Code aus dem Tutorial von mikrocontroller.net:
--> Gibt also Test den Buchstaben zurück. Klappt auch wunderbar.
1
#define BaudRate  115200UL
2
#define F_CPU    22118400UL
3

4
int main (void) {
5

6
  uint16_t ubrr = (uint16_t) ((uint32_t)F_CPU / (16*BaudRate)-1);
7

8
  UBRRH = (uint8_t)(ubrr >> 8);
9
  UBRRL = (uint8_t)(ubrr);
10

11
  UCSRB = (1 << RXEN)|(1 << TXEN)|(1 << RXCIE);
12
  // 8N1
13
  UCSRC = (1<<URSEL)|(1 << UPM1)|(1 << UCSZ1)|(1 << UCSZ0); 
14

15
  unsigned char buffer;
16

17
  while (1) {
18
    while ( !(UCSRA & (1<<RXC)) ) ;
19
    buffer = UDR;
20

21
    while ( !( UCSRA & (1<<UDRE)) );
22
    UDR = buffer;
23

24
  }
25
  return 0;
26
}


Binde ich nun die Lib von Peter Fleury ein, reagiert der Atmega32 leider 
gar nicht mehr.
Die Anschlüsse sind aber alle in Ordnung, sonst würde der Test ja nicht 
klappen. Oszillator, Baudrate und CPU Speed stimmen auch.

Habt ihr eine Ahnung, woran es liegen könnte?
Hier der Code, den ich einbinde.

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include "uart.h"
4

5
int main (void)
6
{    
7
  
8
  uart_init(UART_BAUD_SELECT(115200, 22118400UL));
9
  sei();
10
    
11
  uart_puts("Es klappt!\n");      
12
           
13
  while (1)
14
  {
15
    
16
  }
17
  return 0;
18
}


Vielen Dank schonmal vorweg,
beste Grüße,
Durokh
Gast #3069641
Lesenswert?

Ok, den Fehler habe ich nun durch Zufall gefunden. Hatte 
irrtürmlicherweise noch den Atmega8 also config-Einstellung in AVR 
Studio...

Meint ihr denn, dass man den atmega32 mit 22.1184 Mhz laufen lassen 
kann? Jetzt gerade bekomme ich immer wieder Fehlerzeichen rein (oder 
teilweise komplett)

Was für (negative) Auswirkungen hat es, wenn man den so hoch taktet?

Gruß,
Durokh

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren