www.mikrocontroller.net

Forum: Compiler & IDEs Interrupt nur beim Empfang von Daten?


Autor: Rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jungs,

ich bin gerade dabei das AVR GCC Tut durch zu ackern.
Hba da mal ne frage. weil ich den Empfang von Daten über den UART zZ nur 
mit einer while(1) schleife realisiere. Wäre doch besser immer einen 
Interrupt aus zu lösen wenn der vector USART_RXC_vect kommt oder? sonst 
ist der µC doch immer nur mit dem Empfang beschäftigt. Muss ich diesen 
Interrupt auch für das Senden des µC realisieren? Oder ist das nur beim 
Empfang so?

Noch ne Frage, wo finde ich ne Übersicht wo alle möglichen Signale (wie 
z.B. USART_RXC_vect) drin stehen auf die ein Interrupt reagieren kann?

Danke schonmal!

Mfg René

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rene schrieb:

> Noch ne Frage, wo finde ich ne Übersicht wo alle möglichen Signale (wie
> z.B. USART_RXC_vect) drin stehen auf die ein Interrupt reagieren kann?

Datenblatt...

Autor: Ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wäre doch besser immer einen Interrupt aus zu lösen wenn der vector 
>USART_RXC_vect kommt oder?
So ganz allgemein gesehen, ja.

>sonst ist der µC doch immer nur mit dem Empfang beschäftigt.
Nein. Die Zeichen kommen ja in Zeitabständen, die für den uC eher lang 
sind.
Er ist nur ständig damit beschäftigt das Status-Bit zu pollen.

>Muss ich diesen Interrupt auch für das Senden des µC realisieren?
Müssen, musst Du nicht.
>Oder ist das nur beim Empfang so?
Aber die Gründe die beim Empfang dafür sprechen, sprechen auch beim 
Senden dafür. Warum sollte das anders sein?

>Noch ne Frage, wo finde ich ne Übersicht wo alle möglichen Signale (wie
>z.B. USART_RXC_vect) drin stehen auf die ein Interrupt reagieren kann?
Datenblatt!

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Noch ne Frage, wo finde ich ne Übersicht wo alle möglichen Signale (wie
>z.B. USART_RXC_vect) drin stehen auf die ein Interrupt reagieren kann?

Da du den AVRgcc benutzt, solltest du auch die Doku zur LIB-C auf deinem 
Rechner haben. Da sind die Interrupt-Vektoren beschrieben.
Welche der MEGA32 zu bieten hat, findet sich im Datenblatt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Muss ich diesen Interrupt auch für das Senden des µC realisieren?
> Müssen, musst Du nicht.

Yep

>> Oder ist das nur beim Empfang so?
> Aber die Gründe die beim Empfang dafür sprechen, sprechen auch
> beim Senden dafür. Warum sollte das anders sein?

Im Prinzip: ja
Auf der anderen Seite ist die Sachlage nicht ganz symetrisch.

Beim Empfangen weiß das Programm ja nie, wann ein Byte hereinkommt.
Von daher müsste ständig gepollt werden, was man mit einem Interrupt 
umgehen kann.

Beim Senden hingegen weiß das Programm wann es etwas senden will und 
braucht nur in dieser Zeit das Senderegister pollen, ob es 
aufnahmebereit ist. Wenn das zeitlich kein Problem darstellt, weil 
andere Dinge auch noch zur gleichen Zeit ablaufen sollen, ist Pollen an 
dieser ein kleineres Problem als beim Empfang.

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.