/*
 * acc_mma7455_avr.h
 *
 * Created: 25/11/2014 04:59:48 PM
 *  Author: Avinash
 */ 
#include <stdint.h>

#ifndef ACC_MMA7455_AVR_H_
#define ACC_MMA7455_AVR_H_

#define MMA7455_ADDRESS 0X1D

//Modes
#define MMA7455_MODE_STANDBY	0
#define MMA7455_MODE_MEASURE	1
#define MMA7455_MODE_LEVEL		2
#define MMA7455_MODE_PULSE		3

//g Range
#define MMA7455_RANGE_8G	0
#define MMA7455_RANGE_2G	1
#define MMA7455_RANGE_4G	2

//Registers
#define MMA7455_REG_MCR		0X16
#define MMA7455_REG_STATUS	0X09

//Bits
#define MMA7455_BIT_MODE0 0
#define MMA7455_BIT_MODE1 1

#define MMA7455_BIT_GLVL0 2
#define MMA7455_BIT_GLVL1 3

#define MMA7455_BIT_DRDY 0


uint8_t MMA7455Init(uint8_t range);

uint8_t MMA7455WriteReg	(uint8_t address,uint8_t data);
uint8_t MMA7455ReadReg	(uint8_t address,uint8_t *data);

uint8_t MMA7455SetMode(uint8_t mode);
uint8_t MMA7455SetRange(uint8_t range);

uint8_t MMA7455IsDataReady();

int8_t MMA7455GetX();
int8_t MMA7455GetY();
int8_t MMA7455GetZ();



#endif /* ACC_MMA7455_AVR_H_ */