[MSP430] Laufzeit ISR

Gast #1049746
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?
1
void sio0_isr(void)
2

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

7
  {    
8
    U0TXBUF = Ziffern_send[n_send];
9
    n_send++;
10
  }
11
  else
12
  {
13
   n_send = 0;
14
   }
15
  P2OUT &= 0xfd;
16
}
#1049850
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

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.