Hallo, ich habe eine kleine Frage zur Funktion "udi_cdc_read_buf(int* buf,iram_size_t size)" des USB services beim Atmel Software Framwork. Liest diese Funktion so lange auf dem USB-Bus bis sie "size" Zeichen gelesen hat und blockiert solange. Oder liest diese Beim Aufruf die vorhandenen Zeichen im Puffer bis maximal der Anzahl "size" bzw. wenn weniger vorhanden sind, dann eben weniger und beendet den Lesevorgang danach sofort? Wäre nett, wenn mir weiterhelfen kann. Gruß Kevin
Guckst du Quellcode: http://asf.atmel.com/docs/2.6.1/common/services/usb/class/cdc/device/example/atxmega256a3bu_xmega_a3bu_xplained/doxygen/html/a00124.html#gaa7374616de8bc3a83de3f1884b56fa39
Timmo H. schrieb: > Guckst du Quellcode: > http://asf.atmel.com/docs/2.6.1/common/services/usb/class/cdc/device/example/atxmega256a3bu_xmega_a3bu_xplained/doxygen/html/a00124.html#gaa7374616de8bc3a83de3f1884b56fa39 Danke für den Link! Also so wie ich das verstanden habe wartet er in einer Schleife so lange, bis genügend Zeichen da sind, die er lesen kann, die Funktion blockiert also!
Wenn ich noch kurz eine Frage anhängen dürfte: gibt es im ASF eigentlich eine definierte Funktion für eine "Pause" also etwas wo der Mikrocontroller einfach nur Zeit verschwendet, aber Interrupts aktiviert bleiben. Ich weiß man könnte auch einfach eine Schleife programmieren, aber ich weiß nicht ob die vllt vom Compiler wegoptimiert wird und eine genaue Zeitspanne ist damit auch schwierig zu definieren...
Kevin M. schrieb: > Wenn ich noch kurz eine Frage anhängen dürfte: gibt es im ASF eigentlich > eine definierte Funktion für eine "Pause" also etwas wo der > Mikrocontroller einfach nur Zeit verschwendet, aber Interrupts aktiviert > bleiben. Ich weiß man könnte auch einfach eine Schleife programmieren, > aber ich weiß nicht ob die vllt vom Compiler wegoptimiert wird und eine > genaue Zeitspanne ist damit auch schwierig zu definieren... Falls noch jemand danach suchen sollte, ich habe gerade gesehen, dass das ASF dafür einen eigenen Service namens "Delay routines" bereitstellt. :)
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.