EV Logger
A MSP430 based datalogger for an electric vehicle
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Enumerations | Functions | Variables
Accelerometer

Macros

#define DOUTX   0x06
 
#define DOUTX   0x06
 
#define DOUTY   0x07
 
#define DOUTY   0x07
 
#define DOUTZ   0x08
 
#define DOUTZ   0x08
 
#define TICKSPERUS   (F_CPU/ 1000000)
 
#define ACCEL_INT_IN   P2IN
 
#define ACCEL_INT_OUT   P2OUT
 
#define ACCEL_INT_DIR   P2DIR
 
#define ACCEL_SCK_SEL   P2SEL
 
#define ACCEL_INT_IE   P2IE
 
#define ACCEL_INT_IES   P2IES
 
#define ACCEL_INT_IFG   P2IFG
 
#define ACCEL_INT_VECTOR   PORT2_VECTOR
 
#define ACCEL_OUT   P3OUT
 
#define ACCEL_DIR   P3DIR
 
#define ACCEL_SEL   P3SEL
 
#define ACCEL_INT   BIT5
 
#define ACCEL_CS   BIT5
 
#define ACCEL_SIMO   BIT3
 
#define ACCEL_SOMI   BIT4
 
#define ACCEL_SCK   BIT7
 
#define ACCEL_PWR   BIT6
 
#define REVID   0x01
 
#define CTRL   0x02
 
#define MODE_400   0x04
 
#define G_RANGE_2   0x80
 
#define I2C_DIS   0x10
 

Typedefs

typedef enum accel_state_t accel_state_t
 Enumerate possible states for the accelerometer finite state machine (FSM)
 

Enumerations

enum  accel_state_t {
  STATE_ACCEL_NONE, STATE_ACCEL_XREQ, STATE_ACCEL_XRDY, STATE_ACCEL_YREQ,
  STATE_ACCEL_YRDY, STATE_ACCEL_ZREQ, STATE_ACCEL_ZRDY, STATE_ACCEL_DONE
}
 Enumerate possible states for the accelerometer finite state machine (FSM) More...
 

Functions

void Cma3000_init (volatile SampleBuffer *samplebuffer)
 Configures the CMA3000-D01 3-Axis Ultra Low Power Accelerometer. More...
 
void Cma3000_disable (void)
 Disables the CMA3000-D01 3-Axis Ultra Low Power Accelerometer.
 
void Cma3000_readAccel (void)
 Reads data from the accelerometer.
 
int8_t Cma3000_readRegister (uint8_t Address)
 Reads data from the accelerometer. More...
 
void Cma3000_readAccelFSM (void)
 Commence reading of data into the SampleBuffer.
 
accel_state_t Cma3000_getState (void)
 Get the current state of the accelerometer. More...
 
int8_t Cma3000_writeRegister (uint8_t Address, int8_t accelData)
 Writes data to the accelerometer. More...
 
 interrupt (USCI_A0_VECTOR)
 Interrupt whenever we get a new byte from the accelerometer. More...
 

Variables

static int8_t accelData
 
static int8_t RevID
 
int8_t Cma3000_xAccel
 Data value x from the accelerometer.
 
int8_t Cma3000_yAccel
 Data value y from the accelerometer.
 
int8_t Cma3000_zAccel
 Data value z from the accelerometer.
 
static volatile SampleBuffer * sb
 
static volatile accel_state_t accel_state
 Contain the current accelerometer state. More...
 
int8_t Cma3000_xAccel
 Data value x from the accelerometer.
 
int8_t Cma3000_yAccel
 Data value y from the accelerometer.
 
int8_t Cma3000_zAccel
 Data value z from the accelerometer.
 

Detailed Description

Enumeration Type Documentation

Enumerate possible states for the accelerometer finite state machine (FSM)

Enumerator
STATE_ACCEL_NONE 

We have no or invalid data in the SampleBuffer.

STATE_ACCEL_XREQ 

We have requested the data value for X.

STATE_ACCEL_XRDY 

A data value for X is ready.

STATE_ACCEL_YREQ 

We have requested the data value for Y.

STATE_ACCEL_YRDY 

A data value for Y is ready.

STATE_ACCEL_ZREQ 

We have requested the data value for Z.

STATE_ACCEL_ZRDY 

A data value for Z is ready.

STATE_ACCEL_DONE 

We have completed, there is a full set of valid data in the SampleBuffer.

Function Documentation

accel_state_t Cma3000_getState ( void  )

Get the current state of the accelerometer.

Returns
The current state as an accel_state_t.
void Cma3000_init ( volatile SampleBuffer *  samplebuffer)

Configures the CMA3000-D01 3-Axis Ultra Low Power Accelerometer.

Parameters
samplebufferThe SampleBuffer in which to place accelerometer data samples.
int8_t Cma3000_readRegister ( uint8_t  Address)

Reads data from the accelerometer.

Parameters
AddressAddress of register
Returns
Register contents
int8_t Cma3000_writeRegister ( uint8_t  Address,
int8_t  accelData 
)

Writes data to the accelerometer.

Parameters
AddressAddress of register
accelDataData to be written to the accelerometer
Returns
Received data
interrupt ( USCI_A0_VECTOR  )

Interrupt whenever we get a new byte from the accelerometer.

We should update the state machine and process the byte accordingly.

Variable Documentation

volatile accel_state_t accel_state
static

Contain the current accelerometer state.

This is volatile since it is modified in the interrupt service routine.