
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> ich möchte auf die serielle Schnittstelle COM 1 mit Ecxel/VBA zugreifen, angeschlossen ist ein Microcontroller CControl. Das mache ich mit folgender VBA-Routine: > OPENCOM und SENDBYTE liefern jeweils "0" zurück, d.h. keinen Fehler, aber READBYTE liefert "-1", d.h. "Fehler". > CControl fragt RXD sekündlich ab, sollte auf ein gesendetes Byte 27 vernünftig antworten. Aber es reagiert überhaupt nicht. > > Was könnte sein? Wo könnte ich weiter versuchen, forschen? Könnte es an Vista liegen? Ich kenne die DLL nicht, aber mir fallen auf Anhieb diverse Möglichkeiten ein: 1) READBYTE macht nicht, was Du denkst, das es macht 2) Deine CC macht nicht, was Du denkst, das sie macht 3) Die DLL macht nicht, was Du denkst, das sie macht. Dass die Verkabelung PC<->CC korrekt ist, nehme ich als gegeben an, da Du die CC vermutlich in identischer Konfiguration programmiert hast. Ich würde zunächst vesuchen, 2. ausschließen. Nimm also auf dem PC nicht Dein Programm, sondern Hyperterminal. Falls Dein CC-Programm genau auf das Byte 27 (ESCAPE) reagiert, und auf kein anderes, programmiere sie entsprechend um, so dass sie auf jedes Zeichen reagiert. Drücke dann bei aufgebauter Verbindung eine Taste, z. B. "A" und Enter. Kommt die Antwort der CC wie erwartet? Bezgl. READBYTE: Wartet das denn auf ein Zeichen, falls beim Aufruf noch keines anliegt? Immerhin prüft die CC nach Deinen Angaben ja nur jede Sekunde und Du rufst READBYTE direkt nach SENDBYTE auf. Baue da doch mal eine Verzögerung von ca. 2-3 Sekunden dazwischen. Bezgl. DLL habe ich mit Googeln das hier gefunden: http://www.hjberndt.de/book/msrfaq.html#11 (ganz unten). Das würde ich aber als letztes ausprobieren, da nach dortigen Angaben die alternative DLL noch nicht ausgetestet ist. HTH Bye Achim |
| Antwort schreiben |