Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Günni > > > danke für die Erläuterung, aber mein Wissen über die RTS & CTS Leitungen schauen etwas anders aus: > > > > RTS ist ein Ausgang > > CTS ist ein Eingang > > > Das hab ichg nicht anders geschrieben. > > > Wenn nun die CC2(Sender in diesem Beispiel) etwas senden möchte wird die RTS Leitung gesetzt. Um zu prüfen ob die Gegenstelle empfangsbereit ist wird auf das CTS Signal gewartet (wird von Empfänger gesetzt wenn er bereit ist). Wenn es kommt beginnt die CC2 zu übertragen. Wenn bei der Gegenstelle der Buffer voll ist wird das CTS Signal deaktiviert und die CC2 senden erst weiter, wenn es wieder gesetzt wird. Dies verhindert einen Buffer Overflow im Empfänger. > > Dies ist zumindest der logische Ablauf einer Kommunikation zwischen zwei RS232 Geräten wie z.B. PC und Modem, mit einem Kabel wo alle notwendigen Leitungen verbunden sind. > > Wenn nun eine RS232 Zweidraht-Verbindung (RxD, TxD und GND) benutzt wird muß die RTS und CTS Leitung gebrückt werden, sonst würde ja der Teilnehmer, der gerade senden möchte unendlich auf die CTS Singnalisierung warten. Ist ja auch kein Problem da man lediglich einen Ausgang und einen Eingang verbindet. > > > > Meine Beobachtungen(und Messungen mit Hilfe von VB und Multimeter) an der CC2 und <u>am PC</u> > sind ein wenig anders: > RTS ist immer "True" (RS232: high, TTL:low) solange die Schnittstelle geöffnet ist > bzw. bei der CC2 immer, und wenn die Empangspuffer noch Platz haben. > RTS hat bei allen modernen Anwendungen den Sinn, dem "Sender" zu signalisieren, > daß dieser Empfangsbereit ist. > Das ist z.B. auch bei meinem Baustein I2C-COM (RS232 f. I²C-Bus) so. > CTS ist klar: solange an dieser Leitung ein "True" (RS232: high, TTL: low) geliefert > wird, kann gesendet werden > Und nochmal zum Brücken von RTS und CTS: > Bei der CC2 <u>muß</u> µCCTS auf GND gesetzt werden, wenn das Handshaking > nicht benützt wird. µCRTS sollte dabei offen bleiben. > > > > Meine Frage war eigentlich, ob die CC2 diese RTS Leitung auch wirklich so bedient wie es sein sollte. Denn wie geschildert, mein Versuchsaufbau funktioniert nicht. > > > Wie geschrieben: Es kann so nicht funktionieren Es wird ein I/O-Port benötigt. > > > Hier ein kleines Beispiel, was an hwcom.c2 dann dafür geändert werden muß: > (kopiere am besten hwcom.c2 und benenne die kopierte Datei einfach um. z.B. in hw485.c2) > <font face="courier new" size=2> > const EnPort=3; // I/O-Port für Pegelwandler Enable-Signal > // Hier P1L.3 > //------------------------------------ > inline function ready () returns int > //------------------------------------ > { > inline vmcodes.VM_HWCOM or (vmcodes.HWCOM_READY << 8); > } > > > //----------------------- > function put ( byte c ) > //----------------------- > { > capture; > wait ready(); > ports.set(EnPort,1); > inline vmcodes.VM_LOAD_LOCAL_INT; > inline -6; > inline vmcodes.VM_HWCOM or (vmcodes.HWCOM_PUT << 8); > wait ready(); // Das ist hier sehr wichtig !! > ports.set(EnPort,0); > release; > } > > > //---------------------------------------- > function send ( byte buf[], int length ) > //---------------------------------------- > { > capture; > wait ready(); > ports.set(EnPort,1); > inline vmcodes.VM_LOAD_LOCAL_INT; > inline -8; > inline vmcodes.VM_LOAD_LOCAL_INT; > inline -6; > inline vmcodes.VM_HWCOM or (vmcodes.HWCOM_SEND << 8); > wait ready(); // Das ist hier sehr wichtig !! > ports.set(EnPort,0); > release; > } > > //---------------------------------------- > function print ( byte s[] ) > //---------------------------------------- > { > send(s,s[31]); > }</font> > > Bei den Empfangsroutinen muß nichts geändert werden. > Ich hoffe das hilft Dir weiter > > MfG André H. > > PS: Eine Bitte: > Mache bitte einen Zeilenumbruch bei den postings bevor Du den rechten Rand des > Eingabefeldes erreichst. Sonst kann man nur schwer zwischen Originaltext und Antwort > unterscheiden. Auch würde mir dies das Antworten erleichtern, da ich NS benutze und > dort im Einbabefeld immer nach Rechts scrollen muß.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB