mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Reveive Interrupt


Autor: jürgen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute.Bin leider ein Anfänger in sachen controller programmieren
und hänge gerade an dem Verständnis von codevision zu "receive über
usat
mit interrupt.Verstehe nicht wie ich nun empfangene daten speichern
kann ohne das sie mir verloren gehen?Wird immer ein Interrupt beim
empfangen ausgelöst?
Habe mal den code mitgeschickt ,den mit codevision"codewizar" erzeugt
hat.Hoffe jemand hat Zeit bzw lust mir weiterzuhelfen

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
"Verstehe nicht wie ich nun empfangene daten speichern
kann ohne das sie mir verloren gehen?"

Warum sollen sie verloren gehen?

"Wird immer ein Interrupt beim
empfangen ausgelöst?"

Das wird über ein Interrupt-enable-Flag eingestellt. Vielleicht bietet
der Compiler auch eine Funktion dazu.

Gruß

Wolfgang
--
www.ibweinmann.de
Brushless Development Kit

Autor: jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich jetzt zb. daten empfange.Wie kann ich die Register auslesen bzw
wo stehen die Daten?

Autor: Witwenbetreuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jürgen lade dir am besten die PDF-Datei deines Atmel von der
Herstellerseite herunter. Dort ist das besser beschrieben(Funktion UART
mit C-Codeschnipsel)Wahrscheinlich siehst du gerade den Wald vor lauter
Bäumen nicht ^^. Und nimm dir das AVR-Tutorial von diesem Forum, da ist
auch C noch ein wenig erklärt(Voraussetzung)ansonsten kannst du dir
C-Tutorials ergoogeln.

Autor: jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo .Also programmieren selbst kann ich eigentlich(mehr oder weniger)
Fange aber erst gerade an controller zu programmieren.Das datenblatt
habe ich auch schon durchgeforstet und tranmittnen bekomme ich auch gut
hin.Uart Prinzip (Welche Register man setzt )ist eigentlich auch
klar.Mein problem ist (auch wenn das verrückt klingt),das ich nicht
verstehe mit der obrigen code-einstellung ,Daten die ich erhalte zb:
12 AB (als hex)  , zu speichern und später auszulesn.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
brauchst du dich bei CodeVision kaum drum zu kümmern.
Der Interrupthandler schreibt die angekommenen Daten in einen
Ringbuffer, Buffergrösse kannst du einstellen, je nach Baudrate,
Datenaufkommen und wie oft du nachschauen kannst, ob Daten da sind.
Wieviele Bytes da sind, steht in rx_counter, abholen kannst du die
Daten mit getchar(). Zu guter Letzt gibt es noch das Bit
rx_buffer_overflow. Wenn gesetzt, ist der Buffer übergelaufen, d.h. du
hast Daten verloren -> neu anfordern. Kommt bei ordentlicher
Programmplanung aber nicht vor.

Autor: jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok.thx .super danke

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@jürgen:
ACHTUNG! Wenn Du die kostenlose Evaluation-Version von CodeVision
benutzt, kannst Du keine Interrupt-gesteuerte UART-Bearbeitung machen!
Das ist neben dem Code Size Limit eine der Einschränkungen der
Freeware-Version!

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.