|Tollos – ADXL345.c|
ADXL345.c – accelerometer device I/O for Tollos
These functions provide basic IO for using the ADXL345 accelerometer device, attached via I2C.
The following connections are assumed:
(INT2 is currently unused.)
This code assumes only one ADXL345 device will be used on a controller, so some state information can be held (the device channel and address). This simplifies the tollosAcc interface and allows initialization checking.
accGetXYZIO – read latest x, y, and z accelerations
int accGetXYZIO(int *x, int *y, int *z);
x, y, z – receive accelerations [in milli-gs]
returns 0 if data read, −1 if the device is not initialized, or −2 if there was an error reading the data (or no data ready); 1 is returned if data overrun was raised – in this case data is read
Results are returned scaled to milli-gs (1000 = 1g), without any calibration adjustments.
This should normally be called only after a Data Ready interrupt; the interrupt is cleared by calling this.
accInitIO – configure and initialize accelerometer
int accInitIO(uint channel);
channel – I2C channel on which device is to be found
returns 0 if initialized OK, negative if error
The tollosAcc interface expects:
The caller should set up the interrupt handler before calling this function, or clear Data Ready by calling accGetXYZIO.
accRangeIO – change range of accelerometer
int accRangeIO(uint range);
range – range requested in milli-g [1000 = 1 g]
returns the chosen range if changed OK, −1 if error (range too high)
The accelerometer will be set to a smallest available range that is >= the requested range, to maximize the precision of returned results.
accRateIO – change update rate of accelerometer
int accRateIO(uint rate);
rate – rate requested [Hz, 1..200]
returns the chosen rate (nearest Hz below) if changed OK, −1 if error (rate zero or too high)
The accelerometer will be set to a slowest available rate that is >= the requested rate, to minimize resource usage.
To ensure working with 100kHz I2C, the maximum rate is limited to 200Hz – but note that this may use significant processor bandwidth.
accStopIO – stop and power-down accelerometer
returns 0 if accelerometer stopped OK, negative if an error or it was not running.
|Tollos and these web pages were written by Mike Cowlishaw; Please send me any corrections, suggestions, etc.|
All content © Mike Cowlishaw, 2010–2012, except where marked
otherwise. All rights reserved. The pages here are for non-commercial
use only (see the separate licence for Tollos source code).
records no personal information and sets no ‘cookies’.
However, statistics, etc. might be recorded by the web hosting
This page was last updated on 2012-01-08 by c2wiki.