www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [MSP430] Laufzeit ISR


Autor: Bernd K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte die Laufzeit einer ISR bestimmen, indem ich einfach einen 
Port ein und ausschalte. Es handelt sich um einen ISR fuer die 
Datenuebertragung via RS232. Wenn ich die Baudrate variere 9600- 
115200baud, sollte die Laufzeit sich ja gravierend aendern (von 1ms bis 
0.8ms)
Es ist jedoch so, dass die Pins immer im gleichen Zeitabstand von 
einigen µs ein und ausgeschaltet werden.

Warum ist das so? Wie kann ich die Laufzeit der RS232-Uebertragung 
beobachten?
void sio0_isr(void)

{    
   P2OUT |= 0x02;
  if(n_send < 4)

  {    
    U0TXBUF = Ziffern_send[n_send];
    n_send++;
  }
  else
  {
   n_send = 0;
   }
  P2OUT &= 0xfd;
}

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd K. wrote:
> Es ist jedoch so, dass die Pins immer im gleichen Zeitabstand von
> einigen µs ein und ausgeschaltet werden.

Die High-Zeit ist konstant, das ist korrekt.
Die Baudrate ändert die Low-Zeit.


Peter

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum ist das so?
Weil das kopieren von Daten in den Sendepuffer immer gleich lang dauert. 
Das Senden selber (was der MSP von sich aus erledigt) dauert 
unterschiedlich lang.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eben, und da du nicht mal prüfst, ob der Sendepuffer wieder frei ist, 
bevor du das nächste Zeichen sendest, geht die Sache eh schief. Du musst 
vor jedem Senden schauen, ob der Puffer bereit ist.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. wrote:
> Eben, und da du nicht mal prüfst, ob der Sendepuffer wieder frei ist,
> bevor du das nächste Zeichen sendest, geht die Sache eh schief. Du musst
> vor jedem Senden schauen, ob der Puffer bereit ist.

Wozu?

Der Interrupt kommt doch erst, wenn der Sendepuffer frei ist.
Das ist ja der Sinn des Interrupts.


Peter

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, hatte übersehen, dass er ja in der TX-ISR ist. Sorry. Steht ja 
sogar in der Überschrift, ohje. Naja, Asche auf mein Haupt.

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.