www.mikrocontroller.net

Forum: PC-Programmierung usb und polling intervall


Autor: tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
mit einem usb-gerät (hid) sende ich 8bit daten in 1ms (polling
intervall) abständen an den pc.
dabei gehen daten verloren, wahrscheinlich weil mein application
programm (in vb) die datenrate nicht bewältigen kann.
ich habe zwar das polling-intervall verändern und erziele auch bessere
ergebnisse, aber ganz zufrieden bin ich damit nicht.
hat jemand ähnliche probleme gehabt oder weiß wie ich diese problem am
besten löse?

Autor: René König (king)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist eine gute Idde, bInterval so groß wie möglich zu halten; das hält
den Bus frei für andere Geräte. Wenn Du die eine Millisekunde nicht
wirklich brauchst, setze das Intervall ruhig hoch.

Wenn Du es trotzdem nicht schaffst, das eine Byte Deines Reports
rechtzeitig zu verarbeiten, kannst Du Dir überlegen, den Eingangsbuffer
zu erhöhen. Das machst Du mit der API-Funktion HidD_SetNumInputBuffers
(Achtung: Der zweite Parameter ist die Anzahl der Reports, nicht
Bytes).

Im Übrigen hege ich gerade den Verdacht, daß Du die Daten in einem
Timer einliest. Wenn dem so ist und Du tatsächlich jeden Report
mitbekommen mußt, Dir keine Aussetzer leisten kannst, hast Du Dein
Problem gefunden. Das geht nicht in einem Timer.

Autor: tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt, du hast mit deiner vermutung recht. ich benutze den
1,024-millisekunden-timer as interrupt (sof-isr).ich werde das dann
umändern.
besser ist es dann einen usb-endpunkt-interrupt zu benutzen?
danke rene!! ich werde ausprobieren, ob es funktioniert.

Autor: tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
rene du bist echt ein king :)
dank dir hab ich den fehler beseitigt bzw rausgefunden, dass es daran
liegt. die datenübertragung klappt super, es gehen keine daten
verloren........yeeeeee

Autor: tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider hab ich an einer anderen stelle ein weiteres problem entdeckt,
und zwar:

ich sende kontinuierlich eine zahl z.b. 10. dieser report kann auch
empfangen werden in meiner pc-application. aber in unregelmäßigen
abständen wird plötzlich eine ganz bestimmte zahl empfangen. und diese
zahl ist immer dieselbe. ich weiß nicht woher die herkommt.. an meiner
firmware kann es nicht liegen, die habe ich emuliert bzw. der code ist
minimal. ich weiß nicht woher diese zahl herkommt...

läuft an einer stelle irgendwas schief mit meinen api-aufrufen?
readfile?

Autor: Tobias F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi..
ich möchte ein Referat über den Polling-Bus von USB halten...

Habt ihr irgendwelche Seiten für mich wo ich mich über diese Thematik 
belesen kann bis in den Urschleim? als was in die tiefe geht .. wo man 
sieht wie das alles funktioniert?

mfg
Tobias F.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.