PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADXL202



ChRiZ
21.08.2006, 09:35
Hallo Zusammen!
Kann mir kurz jemand diese Formel erklären?

((T1/T2) - 0.5)/12.5%

ich habe mühe mit den 12.5%, sind das 12.5% vom resultat von T1/T2-0.5?

Vielen Dank!

JanB
21.08.2006, 11:01
Hallo,
die Formel für die Beschleunigung das ADX 202 lautet komplett:

A[g]=((T1/T2)-0.5)/12.5%

A ist die Beschleunigung gemessen in g.
(Erdbeschleunigung g = 9.81 m/s^2)
T1 ist die Periodendauer des ganzen Signals.
T2 ist die Dauer der "High"-Phase.

Bei 0g ist das Tastverhältnis das Ausgangssignales des ADX202 = 50%
Das Tastverhältnis änder sich pro 1g um 12,5%.
Das wird in der Formel ausgedrückt.

Benutze die Formel so wie sie ist,
und setze zum Rechnen
anstatt "/12.5%" einfach "/0.125" ein.

Gruß Jan

ogni42
21.08.2006, 11:05
Nein, das ist (T1/T2-0.5) * 1/0,125 also multipliziert mit dem Reziprokwert von 12.5%

JanB
21.08.2006, 11:10
Hallo,

Nein, das ist (T1/T2-0.5) * 1/0,125
Interessanter Hinweis.
"...multipliziert mit dem Reziprokwert..." ist sicher
besser als eine simple Division.

Bitte erkläre doch auch wo der Unterschied zwischen
"/0.125 " und "* 1/0.125 "
liegt ?

Gruß Jan

ChRiZ
21.08.2006, 13:08
;) Vielen Dank!

greetz Chriz

ogni42
21.08.2006, 21:22
Also: 12,5% sind 1/8. Dementsprechend: 1/12.5% = 8

Sofern Du mit Integern rechnest kannst Du das wiederum durch einen Linksshift um drei Stellen ersetzen (also bla<<3).

Selbst bei floats ist die Multiplikation in der Regel schneller als die Division. Bei Integern sowieso. Beim AVR ganz besonders, weil der schon in Hardware multiplizieren kann.

ChRiZ
22.08.2006, 13:49
Guter Tip, vielen Dank!
Division /8 wäre ja einfach bla<<3 das ist sichelrich viel schneller als der Multiplikationsbefehl...

;)

ogni42
22.08.2006, 14:19
... setzt aber, wie gesagt, voraus, dass mit Integern gearbeitet wird. Bei floats klappt das nicht.

JanB
22.08.2006, 18:11
Division /8 wäre ja einfach bla<<3

Nicht ganz.

bla<<3 ist *8 also Multiplikation. ;-)

Gruß Jan

ChRiZ
23.08.2006, 10:08
a, ja klar ;) ich sag besser nichts mehr...
meinte natürlich bla>>3 :)

jeybo
23.08.2006, 21:37
Hallo, gehört zwar nicht 100%ig hier rein, aber ich frag trotzdem mal:
An welchen Port kann ich den ADXL hängen, wenn ich das PWM-Signal mit einem Mega128 auslesen möchte und int0 bis int3 sowie PDO/PDI für zwei serielle Übertragung (GPS und Funk) und IC2 nutze sowie noch zwei InterruptPins für zwei Drehzahlmesser benötige?

Sehe ich das richtig, daß am Mega128 nur 8 Interruptfähige Pins zur Verfügung stehen?

Beste Grüße, Jeybo

Suggarman
24.08.2006, 11:26
Hallo, gehört zwar nicht 100%ig hier rein, aber ich frag trotzdem mal:
An welchen Port kann ich den ADXL hängen, wenn ich das PWM-Signal mit einem Mega128 auslesen möchte und int0 bis int3 sowie PDO/PDI für zwei serielle Übertragung (GPS und Funk) und IC2 nutze sowie noch zwei InterruptPins für zwei Drehzahlmesser benötige?


Die Antwort paßt zwar auch nicht 100%ig......

Ich lese den ADXL mit einem 12bit-I2C-AD (Max127) aus. Da Du ohnehin schon i2C nutzt kann der sicher auch noch dran :-)

mfg

Stefan

jeybo
26.08.2006, 10:35
Die Lösung ist natürlich auch sehr attraktiv. Dann habe ich noch andere Ports frei. Welche Nachteile hätte diese Methode? Oder gibt es keine bzgl. Abrufrate, Genauigkeit, etc?

robby-fant
26.08.2006, 10:51
Ich kann diesen Term nicht durch % Teilen, ihr seid...wo habt ihr Mathe gelernt.

ogni42
27.08.2006, 13:08
In der Mittelstufe?

12,5% = 0,125 = 1/8

1/ 1/8 = 8