Hi,
ich arbeite mit einem Atmega8 und will empafangene Daten von meinem
Laser an uart senden.
Soweit ist alles ok daten kann ich per uart an die Hterm senden und
empfangen sobald meine Frequenz = 4Mhz.
Und auch kann mein Mikrokontroller auch Daten vom Laser richtig
empfangen, leider mit einem Frequenz von 16 Mhz.
Jetzt wollte ich die 16 MHz für den Ganzen Programm einstellen. Und
bekomme nur wirre Zeichen.
ich habe die Baud Berechnung vom tutorial AVR. wie unten genohmen:
1 | #ifndef F_CPU
|
2 | /* This "Prevention" can lead to Debugger, if AVRStudio use a another, not the hardware fitting Clock rate:
|
3 | Then the following definition doesn't use, but instead the default value (1 MHz?) of AVRStudio - hence
|
4 | the Output of a warning if F_CPU yet does not define:*/
|
5 | #warning "F_CPU was not defined yet, now make up with 16000000"
|
6 | #define F_CPU 16000000L // Systemtakt in Hz
|
7 | #endif
|
8 |
|
9 |
|
10 | #define BAUD 9600L
|
11 | #define UBRR_VAL ((F_CPU+BAUD * 8)/(BAUD*16)-1) //clever round
|
12 | #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) //real baud rate
|
13 | #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) //Error per thousand
|
14 |
|
15 |
|
16 | #if ((BAUD_ERROR>10)||(BAUD_ERROR<-10))
|
17 | #error Systematic error in the baud rate more than 1% and thus too high!
|
18 | #endif
|
19 | ...
|
Wie kann ich für die Daten transfert auch die frequent : 16 Mhz
benutzen?
ich danke euch für die Antworten.
MFG
Gregor