Forum: Mikrocontroller und Digitale Elektronik UART RX Interrupt löst TX Interrupt aus


von Steve (Gast)


Lesenswert?

Hallo Liebe Community habe eine für euch sicher leichte frage habe einen 
MSP430F168 bei mir gefunden und wollte mal bisschen testen. Dabei wollte 
ich ein Zeichen per UART senden und der MSP sollte mir darauf was zurück 
senden. Ist es möglich gleich beim Empfang im RX Interrupt einen TX 
Interrupt vorzubereien?
1
#pragma vector=USART0RX_VECTOR
2
3
__interrupt void USART0_rx(void)
4
{
5
   if(RXBUF0 == "m")
6
  {
7
  }
8
}

Also wenn ein m gesendet wird soll der MSP test oder sowas zurück 
schreiben.

Danke für die Hilfe

Steve

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Steve schrieb:
> Ist es möglich gleich beim Empfang im RX Interrupt einen TX Interrupt
> vorzubereien?
Du willst in der RX-Interruptroutine ein Zeichen senden, oder wie?

von Dietrich L. (dietrichl)


Lesenswert?

Steve schrieb:
> Dabei wollte
> ich ein Zeichen per UART senden und der MSP sollte mir darauf was zurück
> senden. Ist es möglich gleich beim Empfang im RX Interrupt einen TX
> Interrupt vorzubereien?

Warum willst Du denn über Interrupt senden? Du kannst doch in der 
Empfangsinterrupt-Routine das empfangene Zeichen direkt in den 
Sendepuffer schreiben.

Gruß Dietrich

von Steve (Gast)


Lesenswert?

Lothar Miller schrieb:
> Steve schrieb:
>> Ist es möglich gleich beim Empfang im RX Interrupt einen TX Interrupt
>> vorzubereien?
> Du willst in der RX-Interruptroutine ein Zeichen senden, oder wie?

Ich sende per Terminal ein Zeichen und möchte dann einen Text zurück 
sendenambesten über den TXX Interrupt


Dietrich L. schrieb:
> Steve schrieb:
>> Dabei wollte
>> ich ein Zeichen per UART senden und der MSP sollte mir darauf was zurück
>> senden. Ist es möglich gleich beim Empfang im RX Interrupt einen TX
>> Interrupt vorzubereien?
>
> Warum willst Du denn über Interrupt senden? Du kannst doch in der
> Empfangsinterrupt-Routine das empfangene Zeichen direkt in den
> Sendepuffer schreiben.
>
> Gruß Dietrich

Ich möchte ja nicht das gleiche zeichen zurück senden Ein Wort oder 
einen Satz, also auch mehrere DAten

von Jim M. (turboj)


Lesenswert?

Steve schrieb:
> Ich möchte ja nicht das gleiche zeichen zurück senden Ein Wort oder
> einen Satz, also auch mehrere DAten

Das sollte man aber nicht im Interrupt machen, denn mehrere Zeichen 
senden dauert. Da der USART IIRC keine FIFOs hat, können so Zeichen 
verloren gehen.

Man kann im RX Interrupt ein Flag setzten oder einfach das Byte in einen 
Ringpuffer schreiben - gearbeitet wird im Hauptprogramm.

von Steve (Gast)


Lesenswert?

Jim Meba schrieb:
> Steve schrieb:
>> Ich möchte ja nicht das gleiche zeichen zurück senden Ein Wort oder
>> einen Satz, also auch mehrere DAten
>
> Das sollte man aber nicht im Interrupt machen, denn mehrere Zeichen
> senden dauert. Da der USART IIRC keine FIFOs hat, können so Zeichen
> verloren gehen.
>
> Man kann im RX Interrupt ein Flag setzten oder einfach das Byte in einen
> Ringpuffer schreiben - gearbeitet wird im Hauptprogramm.

Hast du dazu auch ein kleines Beispiel?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.