AT91SAM7S64 pCDC.read über USB: Interrupt auslösen oder wie anders handhaben

Gast #1947698
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.