atmega8 uart, frequenz

Gast #1429813
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
#1429825
gregor schrieb:

Deine Beschreibung ist ein wenig wirr.

> Soweit ist alles ok daten kann ich per uart an die Hterm senden und
> empfangen sobald meine Frequenz = 4Mhz.

Du meinst die CPU Frequenz?
Wie wird die eingestellt? Quarz?

> Und auch kann mein Mikrokontroller auch Daten vom Laser richtig
> empfangen, leider mit einem Frequenz von 16 Mhz.

Selbe Frage.

> Jetzt wollte ich die 16 MHz für den Ganzen Programm einstellen. Und
> bekomme nur wirre Zeichen.

Dann wird wohl irgendwo in der Baudratenberechnung und oder der 
Einstellung der CPU-Taktfrequenz ein Bock sitzen.
#1429955
gregor schrieb:
> CPU Frequenz: 16 Mhz
> Quarz: 4Mhz

???
Hast Du deinen Controller mit internen 16Mhz laufen und zusäzlich einen 
4Mhz Quarz angehängt? In diesem Fall ist der Quarz natürlich nutzlos. 
Und nur so am Rande: auch wenn ich es persönlich noch nicht erlebt hab, 
hier im Forum wird die Meinung vertreten, dass UART mit internem 
Taktegeber eines MC nicht funktioniert weil zu ungenau.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.