PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textdatei am AVR / Attiny2313 senden



subcamera
18.03.2008, 13:31
Hallo zusammen,

ich habe eine "Plotter"-Anwendung bei der eine Textdatei mit Steuerkommandos

z.B.

X100 y200
X50 y300
...

an den AVR / ATTiny2313 geschickt werden soll.

Nun dauert die Abarbeiteung der Befehle aber länger als das senden der nächsten Zeile.
So "verschluckt" sich also die Kommunikation.

Wie kann ich die Verbindung synchronisieren?
Eventuell hat dieses Problem schon einmal jemand gelöst?
Ich bin für jeden Hinweis dankbar!

Vielen Dank für die Mühen!
Joachim

PicNick
18.03.2008, 13:44
Mit
CONFIG SERIALIN = BUFFERED , SIZE = nn
buffert der BAscom den Input.
da hast du dann etwas mehr Zeit zum Verarbeiten.

subcamera
18.03.2008, 13:54
Hallo Robert,

der Attiny kann nur einen geringen Buffer einrichten.
Ausserdem kann der Benutzer den Plotter "beliebig" lange anhalten, so dass der Buffer immer zu kelin ist :-(

Gruss

Joachim

PicNick
18.03.2008, 14:00
Oje. Dann brauchst du irgendein Handshake.
Hardware oder XON/XOFF
oder irgendeine Quittung, dann mußt du aber in deine Sende-Applikation reingehen.

subcamera
18.03.2008, 14:54
Wie kann XON/OFF beim ATTiny 2313 unter BASCOM aktiviert werden?

python_rocks
18.03.2008, 15:29
Wie kann XON/OFF beim ATTiny 2313 unter BASCOM aktiviert werden?

Damit: http://avrhelp.mcselec.com/index.html?config_serialin.htm

mfg
Gerold

subcamera
18.03.2008, 16:42
Hi Gerold,

ich kein dort keinen Hinweis auf XOn/XOFF erkennen.
Nur einen Hinweis auf RTS/CTS?

Bin ich total blind?

Gruss

Joachim

python_rocks
18.03.2008, 17:09
ich kein dort keinen Hinweis auf XOn/XOFF erkennen. Nur einen Hinweis auf RTS/CTS?
Hallo Joachim!

Das sind sie. Mit diesen zusätzlichen Leitungen bremst sich die USART ein. Diese schleifst du ebenfalls durch den MAX232 durch und schon sollte die Datenübertragung nur dann laufen, wenn der µC sich dafür Zeit nehmen kann. (das ist Theorie -- ich habe das noch nie selber ausprobiert)

Siehe: http://www.sprut.de/electronic/interfaces/rs232/rs232.htm#hand

Vielleicht musst du bei CONFIG COM1 http://avrhelp.mcselec.com/index.html?config_com1.htm auch noch den Parameter "synchrone" setzen. Das konnte ich leider nicht in Erfahrung bringen. Einfach mal ausprobieren.

mfg
Gerold
:-)

python_rocks
18.03.2008, 17:30
Vielleicht musst du bei CONFIG COM1 http://avrhelp.mcselec.com/index.html?config_com1.htm auch noch den Parameter "synchrone" setzen. Das konnte ich leider nicht in Erfahrung bringen. Einfach mal ausprobieren.
Hallo!

Reine Spekulation:
Vielleicht kann mit CONFIG COM1 und dem Setzen des Parameters "synchrone" der Software-Handshake aktiviert werden.

Wikipedia: http://de.wikipedia.org/wiki/Rs232

Zur Vermeidung von Datenverlusten muss der Empfänger die Datenübertragung anhalten können, wenn keine weiteren Daten mehr verarbeitet werden können. Dieser sogenannte Handshake kann auf zwei Arten realisiert werden, entweder softwareseitig über bestimmte Steuercodes oder über spezielle Leitungen.

* Beim Software-Handshake sendet der Empfänger zur Steuerung des Datenflusses spezielle Zeichen an den Sender. Entsprechend werden für die Datenübertragung lediglich drei Leitungen (RxD, TxD und Gnd) benötigt, aber diese Art Handshake ist nur dann möglich, wenn die beiden Steuercodes in den Nutzdaten nicht vorkommen. Beim Xon/Xoff-Protokoll sendet der Empfänger zur Steuerung des Datenflusses spezielle Zeichen an den Sender (Xon = 11h und Xoff = 13h).
* Beim Hardware-Handshake steuert der RxD-Empfänger über Steuerleitungen die Handshake-Eingänge CTS, DSR und DCD des TxD-Senders mit seinen Handshake-Ausgängen RTS → CTS und DTR → DSR & DCD. Ein Minimal-Interface mit Hardware-Handshake besteht demzufolge aus fünf Leitungen (TxD, RxD, Gnd, RTS und CTS). Dieser Abschnitt trifft so nur auf Nullmodem-Verbindungen zu.
Das sollte man durch ausprobieren heraus bekommen können.

mfg
Gerold
:-)

PicNick
18.03.2008, 17:45
Du mußt wirklich erstmal sehen, was die Software am PC für Möglichkeiten bietet, sonst reden wir uns da Fransen an den Mund.
RTS/CTS hat den Vorteil, daß es vermutlich unterstützt wird, und für die notwendigen zwei Drähte bietet der MAX232 normalerweise noch Platz (eben aus diesem Grunde).

XON/ XOFF ist ein Software-protokoll, da müßt' der PC mitspielen.