#include <string.h>
#include <stdlib.h>
#include <compiler.h>
#include <cfg/os.h>
#include <sys/heap.h>
#include <sys/timer.h>
#include <sys/event.h>
#include <dev/gpio.h>
#include <dev/twif.h>
#include <dev/mma745x.h>
Defines | |
#define | MPRINTF(...) |
#define | FFLUSH(...) |
#define | SGN10BIT 0x0200 |
#define | Con2Cpl(v) if (v & SGN10BIT) { v ^= ~SGN10BIT; v += SGN10BIT; } |
Functions | |
int | Mma745xWrite (uint_fast8_t reg, void *val, size_t len) |
int | Mma745xRead (uint_fast8_t reg, void *val, size_t len) |
int | Mma745xReadVal8 (mma8bit_t *val) |
int | Mma745xReadVal10 (uint8_t ofs, mma10bit_t *val) |
int | Mma745xReadG (mma10bit_t *val) |
int | Mma745xReadCal (mma10bit_t *cal) |
int | Mma745xWriteCal (mma10bit_t *cal) |
int | Mma745xCtl (uint_fast8_t fkt, void *val) |
int | Mma745xInit (uint_fast8_t selftest, mmaInit_t *init) |
Variables | |
const mmaInit_t | mmaDefault |
#define MPRINTF | ( | ... | ) |
Referenced by Mma745xCtl(), and Mma745xInit().
#define FFLUSH | ( | ... | ) |
#define SGN10BIT 0x0200 |
#define Con2Cpl | ( | v | ) | if (v & SGN10BIT) { v ^= ~SGN10BIT; v += SGN10BIT; } |
Referenced by Mma745xReadVal10().
int Mma745xWrite | ( | uint_fast8_t | reg, |
void * | val, | ||
size_t | len | ||
) |
brief write to MMA7455L via I2C.
Write one byte to a register in the sensor. reg Register in sensor to address. val Pointer to value to write.
References I2C_SLA_MMA745x, and TwMasterRegWrite.
Referenced by Mma745xCtl(), Mma745xInit(), and Mma745xWriteCal().
int Mma745xRead | ( | uint_fast8_t | reg, |
void * | val, | ||
size_t | len | ||
) |
brief read from MMA7455L via I2C.
Read one byte from a register in the sensor. reg Register in sensor to address. val Pointer to store the value.
References I2C_SLA_MMA745x, and TwMasterRegRead.
Referenced by Mma745xCtl(), Mma745xReadVal10(), and Mma745xReadVal8().
int Mma745xReadVal8 | ( | mma8bit_t * | val | ) |
bief read all axes of the sensor as raw value.
This function read the current sensor values. Depending on the setup the values are in range of: 2g Mode: -2g..0g..2g -> 0x80..0x00..0x7f 4g Mode: -4g..0g..4g -> 0x80..0x00..0x7f 8g Mode: -8g..0g..8g -> 0x80..0x00..0x7f
para Pointer to mma8bit_t struct to store results in. result 0 if request was successfull, else -1;
References MMA745x_REG_XOUT8, and Mma745xRead().
Referenced by Mma745xReadG().
int Mma745xReadVal10 | ( | uint8_t | ofs, |
mma10bit_t * | val | ||
) |
bief read all axes of the sensor as raw value.
This function read the current sensor values. Depending on the setup the values are in range of: 8g Mode: -8g..0g..8g -> 0x0200..0x0000..0x01ff
para Pointer to mma8bit_t struct to store results in. result 0 if request was successfull, else -1;
References Con2Cpl, Mma745xRead(), mma10bit_t::x, mma10bit_t::y, and mma10bit_t::z.
Referenced by Mma745xReadCal().
int Mma745xReadG | ( | mma10bit_t * | val | ) |
References MMA745X_MCTL_GLVL_2G, MMA745X_MCTL_GLVL_4G, MMA745X_MCTL_GLVL_8G, MMA745X_MCTL_GLVL_MSK, Mma745xReadVal8(), mmaInit_t::rMODE, mma10bit_t::x, mma8bit_t::x, mma10bit_t::y, mma8bit_t::y, mma10bit_t::z, and mma8bit_t::z.
int Mma745xReadCal | ( | mma10bit_t * | cal | ) |
int Mma745xWriteCal | ( | mma10bit_t * | cal | ) |
int Mma745xCtl | ( | uint_fast8_t | fkt, |
void * | val | ||
) |
References MMA745x_INTRST_MSK, MMA745x_REG_DETSRC, MMA745x_REG_INTRST, MMA745x_REG_MCTL, MMA745x_REG_STATUS, Mma745xRead(), Mma745xWrite(), MMA_CLR_IRQ, MMA_GET_IRQ, MMA_GET_STATE, MMA_SET_IRQ, MMA_SET_MODE, MPRINTF, and mmaInit_t::rMODE.
int Mma745xInit | ( | uint_fast8_t | selftest, |
mmaInit_t * | init | ||
) |
brief MMA7455L Initialization
Configure GPIO connections and preset MMA7455L registers.
References GPIO_CFG_PULLUP, GpioPinConfigSet(), memcpy(), MMA745X_MCTL_STON, MMA745x_REG_MCTL, Mma745xWrite(), MPRINTF, NULL, and NutHeapAlloc.
const mmaInit_t mmaDefault |
{ MMA745X_MODE, 0x00, 0x00 , 0x00, 127, 24, 100, 0, 0, }