PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wii motion plus



hman13
01.04.2010, 20:44
hallo,

ich habe jetzt eine wii motion plus und einen uC der i2c spricht.
dank http://wiibrew.org/wiki/Wiimote/Extension_Controllers#Data_Format_.28Wii_Motion_Pl us.29 weiß ich jetzt auch das protokoll
Die Beschleunigung wird allerdings in (grad/sekunde)/20 angegeben.

jetzt müsste ich aber genau jede sekunde einmal nachfragen, wie groß die beschleunigung ist.

da der uC aber auch mit anderen bauteilen per i2c kommuniziert braucht er natürlich auch zeit dafür.
mit delay 1000 aber wüde ich sicher noch ein paar ms mehr warten weil die kommunikation über i2c ja auch zeit braucht.

Weiß jemand von euch wie lange das ungefähr dauert und ob ich einfach nur 998ms warten soll oder die zeit vernachlässigbar ist(4Mhz Quarz)?

Peter

Bammel
01.04.2010, 21:41
Hallo,

frag den sensor einfach in einer timer isr die du auf eine sekunde stellst ab.

gruß,
Bammel

Jaecko
02.04.2010, 08:56
Ich würd im Timer eher nur ein Flag setzen und in der Main bei gesetztem Flag dann abfragen.
Wenn die Kommunikation mal länger dauert, die ISR deshalb blockiert wird und der Timer nochmal auslöst, obwohl er schon läuft,... kann dann ein lustiges Verhalten des AVR hervorrufen.

Dann sinds zwar nicht immer exakt 1000,000ms, aber so grobe Hausnummer stimmt schon. Und wenn grad ne andere Kommunikation über I2C läuft, würde die sonst durch den Timer unterbrochen werden. Wie der Bus da drauf reagiert: Noch nie probiert.

hman13
06.04.2010, 14:36
Mein Microcontroller ist weder interrupt fähig, noch hat er einen timer.

Peter

Jaecko
06.04.2010, 14:51
Was soll das denn für ein Controller sein?

hman13
06.04.2010, 15:23
ein PICAXE</p>

Bammel
06.04.2010, 17:32
das teil kann doch interrupts ausführen und timer verwenden. alleine für den I²C werden doch interruptzs ausgeführt