UART poll oder interrupt?

Gast #1777194
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?
Gast
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
Gast
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
Gast
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.
Gast
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.