
#ifndef _LIS302DL_SPI1_H
#define _LIS302DL_SPI1_H

#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "system_stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_spi.h"

#include "delay.h"
#include "usarts.h"

#define WRITE_TO_UART3

#define READ				0x80 
#define WRITE				0x00

// Accelerometer registers address
#define Who_Am_I			0x0F
#define Ctrl_Reg1			0x20
#define Ctrl_Reg2			0x21
#define Ctrl_Reg3			0x22
#define HP_filter_reset		0x23
#define Status_Reg			0x27
#define OutX				0x29
#define OutY				0x2B
#define OutZ				0x2D
#define FF_WU_CFG_1			0x30
#define FF_WU_SRC_1(ack1)	0x31
#define FF_WU_THS_1			0x32
#define FF_WU_DURATION_1	0x33
#define FF_WU_CFG_2			0x34
#define FF_WU_SRC_2(ack2)	0x35
#define FF_WU_THS_2			0x36
#define FF_WU_DURATION_2	0x37
#define CLICK_CFG			0x38
#define CLICK_SRC(ack)		0x39
#define CLICK_THSY_X		0x3B
#define CLICK_THSZ			0x3C
#define CLICK_TimeLimit		0x3D
#define CLICK_Latency		0x3E
#define CLICK_Window		0x3F

#define gpio_spi1			GPIOA
#define gpio_cs				GPIOE
#define spi1_cs				GPIO_Pin_3
#define spi1_sck			GPIO_Pin_5
#define spi1_miso			GPIO_Pin_6
#define spi1_mosi			GPIO_Pin_7

// Initialization SPI1 and LIS302DL accelerometer
void LIS302DL_SPI1_INIT(void);

// read data from accelerometer
void LIS302DL_READ_AXES_EVERY_SECOND(void);

#endif
