mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART poll oder interrupt?


Autor: stefanie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe gelesen, das man bei Atmegas sagen kann, dass die USART per 
Interrupt oder gepollt funktionieren kann.

Ich sende mit meinem Programm eine definierte Anzahl an char-Bytes mit 
putchar, anschließend lese ich mit getchar ein paar Char-Werte wieder 
zurück.

Wenn mein Sensor die Char-Werte nicht ausgibt, wartet mein Programm 
endlos darauf und hängt sich somit auf. (hier möchte ich noch ein 
Timeout dazu programmieren)

Es macht doch für mich praktisch keinen Unterschied, ob ich die UART per 
Interrupt oder gepollt initialisiere?
Oder was ist besser?

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stefanie schrieb:
> Oder was ist besser?

Hängt von der Anwendung ab.
Wenn ohne Interrupt Zeichen verloren gehen können dann ist Interrupt 
besser.
Wenn ich einen seeehr zeitkritischen Interrupt im System habe und keine 
hohe Datenrate auf dem Uart vorhanden ist kann es besser sein wenn ich 
beim UART keinen Interrupt verwende.

-> in Deinem Fall scheint es keine Rolle zu spielen da der Prozessor 
ansonsten nicht viel zu tun hat.

Gruß Anja

Autor: 78787 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich mag einen mischbetrieb

Empfang eines zeichens im Interrupt
und die daten werden in ein buffer geworfen

ernn der string komplett ist wird eine statemachine aufgerufen die 
bissel was abarbeitet ( in dieser wired der string kopiert

in der zeit können nun wieder neue daten einfließen

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde einen Interrupt nehmen und in einen Ringbuffer kopieren.
Wenn es noch andere wichtigere Interrupts gibt kann man ja einen Nested 
interrupt daraus machen.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die volle Leistungsfähigkeit eines Systems kannst du nur mit einer 
ausgeklügelten Interruptverarbeitung realisieren. Das ist aber gerade an 
den Leistungsgrenzen nicht ganz einfach, und ich schätze mal, du bist 
Grössenordnungen davon entfernt.

Eigentlich ist die Regel einfach: du kannst pollen, wenn du (bzw. der 
µC) sowieso nichts anderes zu tun hast. Sonst solltest du dich um das 
andere kümmern und Interrupts verwenden.

Gruss Reinhard

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.