PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RS232] Muss ich zur Flusssteuerung RTS abfragen?



coolchip
28.02.2005, 22:46
Hallo,
ich bin gerade dabei ein bisschen mit der RS232 Schnittstelle zu experimentieren. Und zwar habe ich einen PIC 16F628 an meinen PC gehängt. Erst mal nur über TXD und RXD. Die beiden verstehen sich prima. :-)

Jetzt möchte ich mal die Flusssteuerung ausprobieren. Ich möchte nur Daten vom PC zum PIC senden. Wobei der PIC entschieden soll, ob der PC eine Sendepause einlegen soll oder nicht.
Normalerweise "fragt" der PC ja über RTS, ob er senden darf und der PIC "antwortet" dann mit CTS. Und jetzt zu meiner Frage:

Muss ich das RTS vom PC überhaupt im PIC auswerten bzw. abfragen? Ich nutze sowieso den Interrupt der RS232-Schnittstelle. Also wenn ein Byte kommt, erfahre ich das sofort. Und dann kann ich ja immernoch den Fluss über die CTS-Leitung steuern. Wozu dann das RTS? Damit könnte ich ja eigentlich nur das erste Byte vom gesendet werden abhalten. Oder?

PicNick
01.03.2005, 08:16
Hi, das RTS soll dir sagen der PC WÜRDE gern ein Byte schicken, der Interrrupt sagt dir, daß das Byte schon DA ist. Das kann ein Unterschied sein, wenn der Buffer schon voll ist.

coolchip
01.03.2005, 11:01
Ok, so habe ich das auch verstanden. Ich hab ja 2 Byte Buffer im PIC. Also lösche ich einfach das CTS Signal sobald ein Byte da ist und dann kann nichts mehr schief gehen und ich kann das erste Byte erst mal auswerten.

Normalerweise würde ich ja auch das RTS nutzen, aber ich habe an meinem PIC nur noch RA5/MCLR frei. Und das hat keinen Interrupt. Also bringt es mir nichts, da das RTS-Signal dran zu schalten.

Danke für die Hilfe!

PicNick
01.03.2005, 11:17
Was wär denn mit XOFF/XON ? (Weniger Draht)
mfg

coolchip
01.03.2005, 11:46
Danke für den Tipp. Auch eine Idee. Aber ich wollte das lieber Hardwaremäßig lösen. Ist weniger programmieraufwand im PIC. ;)