Hallo liebe Leute, hat schon jemand Erfahrung mit der CDC-Firmware von Microchip für den PIC18xxxx sammeln können? In dem Falle könnte ich eine kleine Hilfe gebrauchen. Folgendes: Die CDC emuliert eine RS232 über USB, der µC enthält die komplette HW für USB. Ein Programm auf dem µC läuft auch schon, das Befehle interpretiert. Verbindet man sich vom PC aus mit einem Terminal-Programm (z.B. Hyperterm) zum µC, dann ist alles ok: Kommando senden -> passende Antwort vom µC. Ein selbstgeschriebenes PC-Programm hingegen scheitert. Offensichtlich scheint immer nur das 1. Zeichen anzukommen. Verbinde ich das PC-Programm mit einem weiteren PC mit Terminal, kann ich aber sehen, dass die komplette Zeichenfolge gesendet wurde (Vom selbstgeschriebenen PC-Programm). Ein erster Verdacht: Ein Timing-Problem (Hand-Eingabe, automatisierte Eingabe), oder zu kleiner Buffer der USB-Firmware. Aber, dann habe ich vom Terminal-Programm aus eine Datei mit Befehlen gesendet, diese wurde wie erwartet verarbeitet, die Antworten vom µC waren ok. Was übersehe ich? Das PC-Programm ist mit VC 6 (WIN-API) geschrieben, das µC-Programm mit C18. Gruß und vielen Dank im Voraus, Christian
Problem gefunden: Die Funktion getsUSBUSART() um einen String vom USB einzulesen zerstört den Buffer, wenn man nicht alles einliest, was gerade an Daten anliegt. Bsp.: getsUSBUSART( buffer, 1 ); und 5 Zeichen im USB-Buffer -> 1 Zeichen wird geholt, die nächsten 4 sind nach Aufruf der Funktion verloren Beim Handbetrieb war das kein Problem, da ich niemals so schnell tippen kann, dass ich 2 Zeichen schaffe, während der µC nur 1mal durch den Loop geht, daher hat er immer alles gelesen. Bei Programm-gesteuerter Funktion sieht das schon anders aus. Gruß Christian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.