Attiny2313 aus ISR(INT0_vect) UART Daten senden?

Gast #1911465
Lesenswert?
• ▲
▼
Hallo,

ich möchte aus der ISR(INT0_vect) Uart Daten senden, wenn ich ein char 
ausgebe in der ISR so wir die ISR beeinflußt -> es tut nicht mehr was es 
tun soll, LOL. Aber sobald ich die sendemethode raus nehme geht es 
wieder. Wie löst mann sowas am Besten. Danke.

Gruß,

David
Moderator (Firma: Titel) Persönliche Seite #1911927
Lesenswert?
• ▲
▼
David schrieb:
> wenn ich ein char ausgebe in der ISR so wir die ISR beeinflußt ->
> es tut nicht mehr was es tun soll, LOL.
Du darfst natürlich nicht warten, bis das letzte Zeichen gesendet ist, 
weil in einer ISR überhaupt nicht auf irgendwas gewartet wird. Ein 
Interrupt ist ja eine Unterbrechung des Programmablaufs wegen 
irgendeines Ereignisses.
Nehmen wir mal an, du sitzt ja auch nicht am Tich und liest Zeitung (das 
ist dein Hauptprogramm).
Dann kommt ein Interrupt (INT0) vom Paketdienst über die Türklingel. Du 
gehst hin und nimmst ein Päckchen entgegen, das du und deine Kumpels 
brauchen.
Jetzt bleibst du aber nicht an der Tür stehen und rufst von dort aus 
zusammen mit dem Paketzusteller (= der INT0) alle deine Kumpels an, 
sondern du gehst erst mal zurück an den Tisch, liest die Zeitung fertig, 
und wenn du dann mal Zeit hast, rufst du alle nacheinander an.
Währenddessen können dann über die Türklingel problemlos neue 
(INT0-)Interrupts kommen...

> Aber sobald ich die sendemethode raus nehme geht es
> wieder. Wie löst mann sowas am Besten. Danke.
Man startet das Senden in der ISR INT0 und sendet dann den String weiter 
über den TX-Complete.
Oder man nimmt eine Senderoutine mit Fifo (z.B. in der UART-Lib von P. 
Fleury), schreibt die Daten in den Fifo und lässt der Software die 
weitere Arbeit.

Antwort schreiben

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.

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.