mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik von Codesammlung Verlagert: ATMega128 Uart Problem


Autor: Tobi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich brauche echt Eure Hilfe, da ich nicht weiss, was ich noch alles
testen kann. Ich Versuche jetzt schon seit geraumer Zeit mit Hilfe
eines Stk500/501 und einem ATMega128 ein Zeichen über die Uart1
Schnittstelle zu senden und bekomme es einfach nicht hin.
Mit nem Oszi hab ich auch schon am Ausgang gemessen - kommt aber nix
raus :-(
Der Fehler muss also in der Software liegen (µC hab ich auch schon
getauscht).
Was kann ich noch tun??

Gruss, Tobi

ps: quellcode wurde mit wizard erzeugt

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UART1 oder UART0? der hat doch zweie davon...

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, hat zwei davon.UART1

Kompatibilitätsmodus für den 103er ist nicht eingeschaltet, falls du
deshalb gefragt hast

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo bist dz mit dem oszi drangeganngen??
ausgang µC oder ausgang MAX232?

Autor: flyingwolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach es Dir doch für den Anfang nicht so schwer mit Interrups und
Fehlerspeichern ....


void uartcommand (char ccommand)
    {

  UBRR1H = 0x06;              //  UBBRH(06)  Reloadwert für Highregister
  UBRR1L = 0x82;              //  UBRRL= (fquarz/ (16* BAUD) ) -1 (82)
Lowregister


    setbit(PORTD,PD2);            // Pullup am RXT aktivieren
  setbit(UCSR1C,USBS1);          // 2Stopbits
  setbit(UCSR1B,TXEN1);          // Sender enablen
  setbit(UCSR1B,RXEN1);          // Empfänger enablen


  pause(1); // 10 ms Pause

  UDR1 = ccommand;
  pause(8); // 80 ms Pause
  UDR1 = 0x0d;  // CR

  }

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oszi an max232 Ausgang und am µC

@flyingwolf

Welcher compiler ist das den, bzw. welche header datei?
Die ganzen befehle und defines gibt es bei mir nicht.

Autor: flyingwolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na ein bisschen musst Du auch noch selbst anpassen, z.B.

#define setbit(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define clearbit(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))

und für die "pause" gibt es aus der Standartbibliothek ein delay???

ach ja die Baudrate hier ist 300 oder 400 baud. wenn Du 9600 haben
willst, musst Du die Reloadwerte entsprechend ändern

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.