Okay war unglücklich formuliert. Du hast natürlich recht. Was ich ausdrücken war, ist, dass er natürlich nicht alle x ms nachschaut (=pollen) sondern beliebig oft durch das blockende read() getriggert wird, die du richtig beschrieben hast.RHBaum hat geschrieben:Mit seiner loesung "pollt" er ja nicht, sondern macht sich zunutze, das der joy treiber bei linux in die geraetedatei schreibt, und triggert auf die schreibvorgaenge (fnctl) .
Qt OnChange
das rechnen an sich wird "kaum" rechenleistung verbrauchen.Aber ich bin denke ich schon mal auf der sicherren seite wenn ich versuche eine möglichst perfomace starke und gleichzeitig etwas bastel was kaum rechenleistung verbraucht.
Integer arithmetic an sich is recht billig.
die kosten des signal / slot mechanismus stehen in keiner relation dazu ...
ich wuerd also prizipiell das errechnen der beschleunigung in den auslesethread nehmen ...
wie kommst du eigentlich auf die zeiten ? ich hoffe du nimmst das rtc register und keine time funktion ...
Die frage iss weiterhin, ob dein treiber ueberhaupt eine genaue aufloesung bietet, um verwertbare beschleunigungen auszurechnen ....
Nimm mal deinen Joy, und beweg den so schnell du kannst von links/rechts bzw oben/unten. Dazu wirst du sicher 10ms oder mehr benoetigen. Wieviel werte bekommst du für den weg, und wie genau kannst du zeitstempel dafuer generieren ?
Ciao ....
-
Lord_Luncher
- Beiträge: 11
- Registriert: 28. Februar 2010 19:21
Also ich verwende Ubuntu 9.10 . das installiert für meinen usb joystick von hama automatisch nen treiber.... ich bekomm es ab und zu hin dass nur ein wert ausser der null ausgegeben wird... meistens jedoch sind es zwei.
Muss grad mal weg kann aber sobald ich wieder zuhause bin mal mich an Messungen begeben....
Joa das mit der auflösung für meinen beschleunigungssensor ist natürlich ein problem... sowohl von der bit zahl als auch von der abtastrate....
Bin natürlich immer offen für bessere Lösungen die zu einer optimaleren messung kommen.... das Beagleboard hat 600 Mhz und ich werd ubuntu 9.10 drauf installieren vorraussichtlich.
/edit:
PS: Wenn ich ohne blocken das read in einer while schleife ohne sleep ausführe kommt mein prozessor auf 100%. Das war gemeint mit möglichst wenig rechenleistungs Aufwand
Muss grad mal weg kann aber sobald ich wieder zuhause bin mal mich an Messungen begeben....
Joa das mit der auflösung für meinen beschleunigungssensor ist natürlich ein problem... sowohl von der bit zahl als auch von der abtastrate....
Bin natürlich immer offen für bessere Lösungen die zu einer optimaleren messung kommen.... das Beagleboard hat 600 Mhz und ich werd ubuntu 9.10 drauf installieren vorraussichtlich.
/edit:
PS: Wenn ich ohne blocken das read in einer while schleife ohne sleep ausführe kommt mein prozessor auf 100%. Das war gemeint mit möglichst wenig rechenleistungs Aufwand
würd ich auch so sehenJoa das mit der auflösung für meinen beschleunigungssensor ist natürlich ein problem... sowohl von der bit zahl als auch von der abtastrate....
1. du bist im userspace ... d.h. du kommst ueberhaupt nur zum messen, wenn dein system "mal laune" zu hat.
2. beschleunigung ausrechnen ... du hasst nen wegpunkt zu ner bestimmten Zeit. daraus das 2.differential ... du kriegst irgendwie die zeitdifferenzen als quadrat in nen Bruch. Dann betrachte die formel mal aus statistischer sicht ... ala fehlerfortpflanzung. Ich weiss ned was du da fuer werte erwartest ... zumal du selber ne "hohe abtastrate" brauchst.
Ciao ...
-
Lord_Luncher
- Beiträge: 11
- Registriert: 28. Februar 2010 19:21
bin gestern nicht mehr zu den messungen gekommen und heute hab ich mir überlegt dass die auch relativ sinnfrei sind weil ich das beagleboard noch nicht habe und das hat weit aus weniger leistung als mein desktop.
Das mit der berechnung hab ich mir auch so in etwa gedacht.... denke das werd ich dann so umsetzen dass jede beschleunigung kurzeitig aufgezeichnet wird und dann in einen wert umgerechnet wird der die zurückgelegte strecke symbolisieren soll.... welche dann durch eine gegen Aktion (motor auf der gegenüberliegenden Seite beschleunigen) ausgeglichen wird so dass der wert der strecke immer null sein soll, bzw nahezu null... je nach dem wie empfindlich die beschleunigungssensoren sind XD
Eine etwas andere Frage:
Weiss jemand konkret wie man unter linux einen usb -> parallel adapter ansteuert? Also ich hab die datei /dev/usb/lp0
Das mit der berechnung hab ich mir auch so in etwa gedacht.... denke das werd ich dann so umsetzen dass jede beschleunigung kurzeitig aufgezeichnet wird und dann in einen wert umgerechnet wird der die zurückgelegte strecke symbolisieren soll.... welche dann durch eine gegen Aktion (motor auf der gegenüberliegenden Seite beschleunigen) ausgeglichen wird so dass der wert der strecke immer null sein soll, bzw nahezu null... je nach dem wie empfindlich die beschleunigungssensoren sind XD
Eine etwas andere Frage:
Weiss jemand konkret wie man unter linux einen usb -> parallel adapter ansteuert? Also ich hab die datei /dev/usb/lp0