mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART am AT90CAN128


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen AT90CAN128 auf einem STK500 und versuche mich an der UART 
Schnittstelle.

Mein Prog siehe Anhang. Wenn ich in die ISR nur


UDR0 = UDR0;


schreibe habe ich ein tolles echo. Also HW so weit OK.

Jetzt möchte ich aber eine Zeichenkette empfangen und in ein Array 
speichern. Schon klappts nicht mehr !
Es scheint so, als würde nicht mehr in die while Schleife 
zurückgesprungen. Im Debugger sehe ich, dass nach dem 2. Zeichen nichts 
mehr empfangen wird.

Kann jm. helfen ?

Mein Ziel ist es Zeichen bis zu \n zu empfangen, diese in einem string 
zu bekommen und diesen auswerten.

in der while möchte ich die Zeichenkette wieder ausgeben. (nur zum 
testen)

Bestimmt gibt es eine bessere Lösung. In diesem Fall würde ich meine 
natürlcih ersetzen.


Danke

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
womit taktest Du Deinen Prozessor?

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und
int char_count=0; sollte besser
volatile int char_count=0;
heissen, wenn Du sie im Interrupt hochzählst, sonst weiss das main 
nicht, dass sie sich in der ISR geändert hat

Autor: john (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quarz mit 7,3728 MHz ( siehe txt.-File )

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, OK, löst ein Problem, welches ich bis jetzt noch nicht hatte.

Danke schon mal !

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... aber mein eigentliches Problem ist damit noch nicht gelöst.


Hat denn jemand ne Idee oder ne gute Lösung ?

Autor: dummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>char str_complete...

Das muss auch volatile sein.
Und lies in der ISR UDR0 nicht zweimal.
Benutze data.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werd verrückt !!!

Jetzt gehts !!!

Ist ja aber auch klar. Eigentlich dummer Fehler.

Danke !!!!!!!!!!!!!!

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.