UART RX Interrupt löst TX Interrupt aus

Gast #3558817
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
#3558841
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
Gast #3558847
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
#3558902
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.
Gast #3558925
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren