Hallo Ich verwende einen FT232RL mit 3Mbaud an einem Attiny2313 welcher mit 24MHz direkt vom FT232RL versorgt wird. Ich Lese am Computer mit der FTDI Library immer 1000bytes aus solange bis ich 50'000 bytes empfangen habe. Dies klappt problemlos wenn ich es kurz bzw unmitelbar nach dem Connecten mache. Warte ich ein wenig, so habe ich innerhalb weniger ms alle 50'000 Daten empfangen. Klicke ich danach nochmal auf empfangen, so werden wieder neue daten eingelesen. Ich tippe hier auf einen Buffer im FT232 hin oder auf einen in der FTLibrary. Wie kann ich also den Buffer leeren bzw mit jedem abrufen von daten neue daten erhalten und keine aus irgendeinem buffer? Danke schonmal
"Mit der FTDI-Library" heißt was? Eigentlich sollte der Treiber ja eine ganz normale serielle Schnittstelle emulieren. Dann hängt dein Programm nicht vom FTDI ab. Welches Betriebssystem, Windows? Man könnte die üblichen Systemaufrufe fürs "Flushen" der seriellen Schnittstelle probieren (z.B. PurgeComm unter Windows), aber: Sowohl PC als auch FT232 haben Buffer, dein Vorhaben wird also sehr schwierig. Kannst du nicht ein Zeichen für "Abgrenzung" - also "hier fängt der neue Datensatz an" verwenden? Dann kann man einfach so weit lesen bis nichts mehr da ist, und dann den letzten Datensatz nehmen. Gruß David
David Madl schrieb: > Kannst du nicht ein Zeichen für "Abgrenzung" - also "hier > fängt der neue Datensatz an" verwenden? Hmm Klingt gut.... David Madl schrieb: > Mit der FTDI-Library heißt was? Eigentlich sollte der Treiber ja eine > ganz normale serielle Schnittstelle emulieren. Welches Betriebssystem, > Windows? Mit der FTDI Library heisst, das ich deren DLL verwende um mit meinem Programm auf deren Chip zuzugreifen. Dies ist notwendig, da die WinAPI keine Baudraten von 3Mbaud unterstützt
Etwas Googeln zum Thema fördert die "libftdi" zutage, die hat einen Aufruf namens ftdi_usb_purge_rx_buffer, der sollte auch die Chip-Buffer löschen. Weiters gibt's hier: http://www.ftdichip.com/Documents/ProgramGuides.htm eine Doku (1. Link)... FT_Purge() sollte demnach auch die Device-Buffer löschen. IMHO ist die Variante mit Datensatz-Abgrenzung schöner. Gruß David
David Madl schrieb: > Etwas Googeln zum Thema fördert die "libftdi" zutage, die hat einen > Aufruf namens ftdi_usb_purge_rx_buffer, der sollte auch die Chip-Buffer > löschen. Besten Dank! Hat geklappt :)
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.