write (serout,'ABCDEFGH')

rbr50
 
Avatar
 
Subject:

write (serout,'ABCDEFGH')

 · 
Posted: 25.01.2011 - 21:09  ·  #1
Hallo,

mein 1. Beitrag, bitte Nachsicht! ;-)

Ich habe an einem MEGA32 ein Sendemodul, ein RMA9924 von Zettl. Empfangsseitig den Empfänger einfach per MAX232 am PC. Datenrate 1200 8N1.

Deklariere ich eine Variable <hilf> als String[8], fülle sie mit hilf:='ABCDEFGH' und sende sie mit write (serout, hilf);, so funktioniert der Empfang einwandfrei. 30 Meter und 2 Decken kein Thema.

Nun kommts:
write (serout,'ABCDEFGH') führt zu jede Menge Empfangsproblemen, es kommt eigentlich nur Müll an. Sonst wirklich nichts anders.

Hat jemand eine Idee, was das sein könnte?

Viele Grüße

Rolf
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: write (serout,'ABCDEFGH')

 · 
Posted: 25.01.2011 - 22:21  ·  #2
Hallo Rolf,

hier ein (funktionierendes) Fragment aus meinem aktuellen Projekt:

procedure TestPrintDeviceState;
begin
write(SerOut, 'DeviceState was : ');


Evtl. ist bei der "hilf" Variante eine minimal längere Pause zw. den
einzelnen Zeichen (wegen der Adressierung) ???
Am Compiler liegt es mit größter Sicherheit nicht.

Aber generell:
poste möglichst immer ein komplettes kurzes Tesprogramm
und erwähne auch die Compiler Version.
Z.B. erhebt sich die Frage, ob Du einen TxBuffer verwendest!

Gruß
Gunter
rbr50
 
Avatar
 
Subject:

Re: write (serout,'ABCDEFGH')

 · 
Posted: 26.01.2011 - 19:47  ·  #3
Quote by Gunter

Evtl. ist bei der "hilf" Variante eine minimal längere Pause zw. den
einzelnen Zeichen (wegen der Adressierung) ???
Am Compiler liegt es mit größter Sicherheit nicht.


Hallo Gunter,

danke für Deine schnelle Antwort. Der Compiler ist es mit Sicherheit nicht, das hatte ich schon vorher ausgeschlossen, indem ich die serielle mit Kabel statt mit Funk ausgelesen habe. Beide Varianten, also die mit "Hilfs"-Variable oder mit direkter Konstanteneingabe funktionieren einwandfrei. Hatte ich bei anderen Anwendungen auch noch nie ein Problem.

Ich habe den Effekt aber schon ziemlich sicher eingegrenzt: Das Empfangsmodul interpretiert längere HIGH-Pegel als Störung. Da ich den Sender direkt, ohne Inverter, am Port des AVRs habe, wird wohl genau das auftreten. Und wie es der Zufall will, sorgen wohl minimalste Timing-Unterschiede, ob Konstante oder Variable, für unterschiedliches Empfangsverhalten.

Nochmal: der Compiler ist es nicht. Drahtgebunden ist alles perfekt.

Ich werde es jetzt mal richtig machen, und einen Inverter vor den Sender schalten. Dafür spare ich den dann auf der anderen Seite. ;-)

Nochmal danke und viele Grüße aus Petershagen!

Rolf
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   56   70 · Page-Gen-Time: 0.019886s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI