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)
52 i2c_write(slave_addr);
76 MEMS_Read_Reg (uint8_t slave_addr, uint8_t reg_addr, uint8_t *pBuffer,
79 uint8_t i, ack,
addr = reg_addr;
87 i2c_write(slave_addr | 0x00);
94 i2c_write(slave_addr | 0x01);
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;
static uip_ds6_addr_t * addr
Pointer to a router list entry.
uint8_t i2c_read(int ack)
Read a byte from I2C bus.