src/adxl345.c
author Tero Marttila <terom@paivola.fi>
Wed, 08 Oct 2014 23:20:34 +0300
changeset 11 a383e22204f2
permissions -rw-r--r--
adxl345: control/data registers read/write
11
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#include "adxl345.h"
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
#include "spi.h"
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
#include <util/delay.h>
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
/*
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
 * SPI format
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
 */
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
enum adxl345_header_bits {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
    ADXL345_READ        = 0b10000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
    ADXL345_WRITE       = 0b00000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
    ADXL345_MULTI       = 0b01000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
enum adxl345_reg {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
    ADXL345_DEVID       = 0x00,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
    ADXL345_POWER_CTL   = 0x2D,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    ADXL345_DATA_FORMAT = 0x31,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
    ADXL345_DATAX0      = 0x32,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    ADXL345_DATAX1      = 0x33,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
    ADXL345_DATAY0      = 0x34,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
    ADXL345_DATAY1      = 0x35,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
    ADXL345_DATAZ0      = 0x36,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    ADXL345_DATAZ1      = 0x37,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
enum adxl345_power_ctl {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
    ADXL345_POWER_CTL_LINK          = 0b00100000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
    ADXL345_POWER_CTL_AUTO_SLEEP    = 0b00010000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
    ADXL345_POWER_CTL_MEASURE       = 0b00001000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
    ADXL345_POWER_CTL_SLEEP         = 0b00000100,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
    ADXL345_POWER_CTL_WAKEUP        = 0b00000011,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
enum adxl345_power_ctl_wakeup {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    ADXL345_POWER_CTL_WAKEUP_8      = 0b00000011,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    ADXL345_POWER_CTL_WAKEUP_4      = 0b00000001,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
    ADXL345_POWER_CTL_WAKEUP_2      = 0b00000010,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
    ADXL345_POWER_CTL_WAKEUP_1      = 0b00000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
enum adxl345_data_format {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
    ADXL345_DATA_FORMAT_SELF_TEST   = 0b10000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
    ADXL345_DATA_FORMAT_SPI         = 0b01000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
    ADXL345_DATA_FORMAT_INT_INVERT  = 0b00100000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
    ADXL345_DATA_FORMAT_FULL_RES    = 0b00001000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
    ADXL345_DATA_FORMAT_JUSTIFY     = 0b00000100,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    ADXL345_DATA_FORMAT_RANGE       = 0b00000011,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    53
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
enum adxl345_data_format_range {
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    56
    ADXL345_DATA_FORMAT_RANGE_2G    = 0b00000000,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
    ADXL345_DATA_FORMAT_RANGE_4G    = 0b00000001,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
    ADXL345_DATA_FORMAT_RANGE_8G    = 0b00000010,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
    ADXL345_DATA_FORMAT_RANGE_16G   = 0b00000011,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
};
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
#define ADXL345_DDR DDRB
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
#define ADXL345_PORT PORTB
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
#define ADXL345_CS PORTB2
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
void adxl345_init ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
    // set CS pin
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69
    sbi(&ADXL345_DDR,    ADXL345_CS);   // out
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    70
    sbi(&ADXL345_PORT,   ADXL345_CS);   // high (off)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    71
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    72
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    73
static inline void adxl345_start ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    74
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    75
    cbi(&ADXL345_PORT,   ADXL345_CS);    // low (on)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    76
    _delay_us(1);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    77
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    78
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    79
static inline void adxl345_stop ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    80
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    81
    sbi(&ADXL345_PORT,   ADXL345_CS);    // high (off)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    82
    _delay_us(100);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    83
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    84
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    85
static void adxl345_write (enum adxl345_reg reg, byte value)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    86
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    87
    adxl345_start();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    88
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    89
    spi_readwrite(ADXL345_WRITE | reg);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    90
    spi_readwrite(value);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    91
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    92
    adxl345_stop();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    93
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    94
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    95
static byte adxl345_read (enum adxl345_reg reg)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    96
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    97
    byte value;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    98
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    99
    adxl345_start();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   100
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   101
    spi_readwrite(ADXL345_READ | reg);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   102
    value = spi_readwrite(0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   103
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   104
    adxl345_stop();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   105
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   106
    return value;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   107
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   108
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   109
static int8_t adxl345_read_s8 (enum adxl345_reg reg)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   110
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   111
    int8_t value = 0;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   112
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   113
    adxl345_start();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   114
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   115
    spi_readwrite(ADXL345_READ | ADXL345_MULTI | reg);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   116
    value = spi_readwrite(0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   117
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   118
    adxl345_stop();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   119
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   120
    return value;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   121
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   122
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   123
static int16_t adxl345_read_s16 (enum adxl345_reg reg)
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   124
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   125
    char v0, v1;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   126
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   127
    adxl345_start();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   128
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   129
    spi_readwrite(ADXL345_READ | ADXL345_MULTI | reg);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   130
    v0 = spi_readwrite(0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   131
    v1 = spi_readwrite(0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   132
    adxl345_stop();
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   133
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   134
    return ((int) v1 << 8) | (int) v0;
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   135
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   136
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   137
byte adxl345_read_devid ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   138
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   139
    return adxl345_read(ADXL345_DEVID);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   140
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   141
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   142
void adxl345_setup ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   143
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   144
    adxl345_write(ADXL345_POWER_CTL,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   145
            // enable measrurement mode
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   146
            ADXL345_POWER_CTL_MEASURE
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   147
    );
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   148
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   149
    /*
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   150
    adxl345_write(ADXL345_DATA_FORMAT,
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   151
            // self-test
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   152
            ADXL345_DATA_FORMAT_SELF_TEST
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   153
    );
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   154
    */
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   155
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   156
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   157
int16_t adxl345_read_x ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   158
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   159
    return adxl345_read_s16(ADXL345_DATAX0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   160
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   161
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   162
int16_t adxl345_read_y ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   163
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   164
    return adxl345_read_s16(ADXL345_DATAY0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   165
}
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   166
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   167
int16_t adxl345_read_z ()
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   168
{
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   169
    return adxl345_read_s16(ADXL345_DATAZ0);
a383e22204f2 adxl345: control/data registers read/write
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
   170
}