Forum: Mikrocontroller und Digitale Elektronik AT91SAM7S64 pCDC.read über USB: Interrupt auslösen oder wie anders handhaben


von Johannes (Gast)


Lesenswert?

Hallo,

der Titel verrät es schon: Es ist nicht so leicht zu erklären.
Ich verwende den AT91SAM7S64 mit der USB-Schnittstelle. Um über USB zu 
kommunizieren verwende ich das Beispiel vom Thomas Martin mit pCDC.Read 
und pCDC.Write. Das funktioniert soweit auch ganz gut. Problematisch ist 
dabei nur, dass Read solange den Kontroller lahmlegt, bis etwas zum 
Lesen da war.

Meine Frage: Wie setzt man die Programm-Struktur am Besten auf, dass 
alles läuft und trotzdem über USB gelesen werden kann. Gibt es eine Art 
Interrupt, falls etwas über USB kommt, was man dann auslesen kann?
Oder muss ich in main eine while(1)-Schleife nehmen, die nur aus einem 
"Read" besteht?
Gibt es da nicht eine besser Lösung?

Noch eine andere Frage: Bei mir ist es immer so, dass ich, sobald ich 
den USB-Port öffne, erst etwas lesen muss, damit danach alles so 
funktioniert, wie es soll. Wenn ich nach dem Öffnen sofort schreibe, 
kommt beim PC die Daten erst 20 Sekunden später an.

Schönen Gruß,
Johannes

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.