www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupts deaktivieren


Autor: hmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich habe hier schon oft gelesen das die Int-Routinen möglichst kurz
sein sollen.
Ich will Parameter über die Serielle vom Pc auf den yC übertragen.
während ich das mache soll der yC sonst nichts machen. Es handelt sich
nur um 15 Byte.
Ist es besser das ganze in der Hauptschleife zu machen oder schalte ich
am Anfang der Int-Routine alle Ints aus und polle bis ich die 15Byte
habe?

Ciao
  hmann

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Zeitraster eines modernen µC dauert die Übertragung von 15 Bytes
über eine RS-232 eine mittlere Ewigkeit.  Für die Übertragung selbst
kannst Du ja Interrupts benutzen.  Selbst wenn Du das nicht willst,
ist es aber nicht dienlich, in dieser langen Zeit die Interrupts zu
sperren.

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt immer auf das zu lösende Problem an. Wenn Du nur alle 2 Stunden
eine LED über einen Interrupt toggeln willst, und sonst absolut nichts
in Deinem Programm passiert, dann darf die ISR ruhig etwas länger sein.
;-)

Ernsthaft: Wenn Du Dir sicher bist, dass der MC während des Empfangs
der 15 Byte keinerlei andere Aufgaben zu erledigen hat - und auch
niemals zu erledigen haben wird - dann kannst Du die ISR so schreiben,
wie es für den Empfang nötig ist, egal wie lange das dauert.

ABER: Dein Kunde, Dein Chef oder Murphy wird in der Regel bereits kurze
Zeit nach Fertigstellung Deines Programms mit Erweiterungen kommen, die
ja "problemlos parallel zum seriellen Empfang abgewickelt werden
können, da der MC doch schnell genug ist und über reichlich ungenutze
Kapazität verfügt". Siehst Du, wo die Gefahr lauert? Deshalb sollte
man sich grundsätzlich einen professionellen Programmierstil angewöhnen
und der heißt bei ISR nun mal: So kurz wie möglich und so selten wie
nötig.

Gruß, Frank

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.