Forum: Mikrocontroller und Digitale Elektronik Frage zur read-Funktion (USB) beim Atmel Software Framework


von Kevin M. (Gast)


Lesenswert?

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

von Timmo H. (masterfx)


Lesenswert?


von Kevin M. (Gast)


Lesenswert?

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!

von Kevin M. (Gast)


Lesenswert?

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...

von Kevin M. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.