23 #include PLATFORM_HEADER
33 static boolean fullscale_state;
47 MEMS_Write_Reg (uint8_t slave_addr, uint8_t reg_addr, uint8_t reg_value)
76 MEMS_Read_Reg (uint8_t slave_addr, uint8_t reg_addr, uint8_t *pBuffer,
79 uint8_t i, ack, addr = reg_addr;
97 for (i = 0; i < NoOfBytes; i++){
99 if (i < (NoOfBytes - 1))
125 TIM2_CCER &= 0xFFFFEEEE;
126 MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, STATUS_REG, 0x00);
127 MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, FF_WU_CFG, 0x00);
128 MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, DD_CFG, 0x00);
129 MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, CTRL_REG2, 0x00);
130 MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, CTRL_REG1, 0x87);
131 fullscale_state = MEMS_LOW_RANGE;
146 return MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, CTRL_REG1, 0xC7);
159 return MEMS_Write_Reg (kLIS3L02DQ_SLAVE_ADDR, CTRL_REG1, 0x87);
170 MEMS_SetFullScale (
boolean range)
174 MEMS_Read_Reg(kLIS3L02DQ_SLAVE_ADDR, CTRL_REG1, &i2c_buffer, 1);
176 if(range==MEMS_HIGH_RANGE){
183 MEMS_Write_Reg(kLIS3L02DQ_SLAVE_ADDR, CTRL_REG1, i2c_buffer);
185 fullscale_state = range;
198 MEMS_GetFullScale (
void)
200 return fullscale_state;
void i2c_write(uint8_t data)
Send a byte to I2C bus.
void i2c_stop(void)
Generate I2C STOP condition.
uint8_t i2c_read(int ack)
Read a byte from I2C bus.
void i2c_start(void)
Generate I2C START condition.