Forum: Mikrocontroller und Digitale Elektronik Datenmuell an der Atmega UART


von Daniel B. (yzdani)


Angehängte Dateien:

Lesenswert?

Servus,

warum bekomme ich hier nur Datenmuell?
den Code habe ich angehängt.
Als Controller verwende ich den Atmega 16 und den Mega 2560.
HTERM Spuckt nur Quadrate aus...
bitte um Hilfe!!


Danke im Voraus!

Gruss
Dani

von holger (Gast)


Lesenswert?

>#define F_CPU 12000000UL

Ich dachte immer Arduinos laufen mit 16MHz.
Sind die Fuses auch so eingestellt das der AVR
mit Quarz läuft?

von Klaus (Gast)


Lesenswert?

Bitte suche mal hier nach dem Problem und versuche die verschiedenen 
genannten Maßnahmen. Die Ergebnisse werden für die weitere Fehlersuche 
hilfreich sein, falls sich das Problem nicht dadurch schon erledigt.

von Daniel B. (yzdani)


Lesenswert?

Vielen Dank für deine schnelle Antwort!

Der Atmega16 ist kein Arudino Board.
Den MEGA 2560 habe ich mit dem Arduino IDE programmiert.
"Serial.begin(9600);" sollte ja schon die ganeze Uart Konfig. 
übernehmen?!

Gruss

dani

von holger (Gast)


Lesenswert?

>sollte ja schon die ganeze Uart Konfig.
>übernehmen?

Das nützt dir aber nichts wenn der AVR nicht mit dem
Takt läuft den du angegeben hast.

#define F_CPU 12000000UL

Das stellt den Takt nicht ein, das sagt dem Compiler
nur das er damit rechnen soll.

Lass mal ne LED im Sekundentakt blinken. Tut sie das auch?

von Daniel B. (yzdani)


Lesenswert?

holger schrieb:
> Lass mal ne LED im Sekundentakt blinken. Tut sie das auch?

JA funktioniert

von Timmo H. (masterfx)


Lesenswert?

Daniel R. schrieb:
> holger schrieb:
>> Lass mal ne LED im Sekundentakt blinken. Tut sie das auch?
>
> JA funktioniert
Wirklich 1 Sekunde? oder vielleicht doch 1,3s? Pi * Daumen gemessen?

: Bearbeitet durch User
von Daniel B. (yzdani)


Lesenswert?

Timmo H. schrieb:
> Wirklich 1 Sekunde, oder vielleicht doch 1,3s?

Läuft FAST synchron zur Stoppuhr... wie kann ich die Fuses überprüffen?

von S. Landolt (Gast)


Lesenswert?

> UCSRC = (1<<UMSEL) | (1<<UCSZ1) | (1<<UCSZ0);

Soll das vielleicht URSEL heißen?

von Timmo H. (masterfx)


Lesenswert?

Was soll denn jetzt eigentlich diese Mischung von plain C und Arduino 
Code?
Ins UDR direkt schreiben sollte man nicht machen. Vorher gucken ob 
senden Möglich ist (  while (!(UCSRA & (1<<UDRE))) )
Die beiden Programme machen was anderes.

Was passiert denn bei diesem Arduino Code:
1
void setup()                  
2
{
3
  Serial.begin(9600);           
4
  
5
  Serial.println("Hello world!"); 
6
}
7
8
void loop()                      
9
{
10
                                  
11
}

: Bearbeitet durch User
von Daniel B. (yzdani)


Lesenswert?

D

S. Landolt schrieb:
>> UCSRC = (1<<UMSEL) | (1<<UCSZ1) | (1<<UCSZ0);
>
> Soll das vielleicht URSEL heißen?


Auf URSEL geändert, jetzt kommt nur mehr ein Quadrat und nicht mehr 3 
oder 4!!

geht schon mal in die richtige Richtung, danke!!

von S. Landolt (Gast)


Lesenswert?

Also ist die Baudrate jetzt nur noch ein bisschen falsch; oder wird das 
Signal nicht invertiert, d.h. kein MAX232 dazwischen?

von BirgerT (Gast)


Lesenswert?

Terminal Einstellungen - baud, datenbits, Parity, stopbits?

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
Noch kein Account? Hier anmelden.