Gast
#385078
USB ist eine feine Sache, wenn da nicht die Sache mit der blockweisen Übertragung wäre. Ich habe eine alte Schaltung von RS232 mit einem FT232 auf USB umgerüstet. Allerdings habe ich jetzt das Problem, dass nur noch ziemlich 1kByte/s übertragen werden, obwohl die Baudrate bei 115,2kbaud liegt. Anscheinend wird pro USB Frame nur 1 Byte übertragen. Um das zu umgehen muss man immer ganze Datenblöcke auf einmal an den COM Port übergeben. Hier ist aber mein Problem: Die Daten werden zur Laufzeit des Programms erstellt, und es handelt sich dabei meist um Befehle. Manchmal wird minutenlang nichts gesendet, dann wieder mal mehrere 100kByte auf einmal. Daher meine Idee zwischen den Senderoutine und dem Programm einen Puffer einzubauen, der die Daten ansammelt bis z.b. 100Bytes im Puffer sind und diese dann auf einmal überträgt. Allerdings kann es dann passieren, das einige Daten minutenlang nicht gesendet werden, wenn die 100Bytes noch nicht voll sind. Daher wäre eine Zeitbeschränkung sinnvoll. Also wenn z.B. 100ms lang nichts gesendet wurde, wird der Puffer übertragen. Auf einem uC würde ich dazu einen Timer Interrupt verwenden, wie macht man sowas auf einem PC in C++ ?