/****************************************************************************** * @brief Initialize ADXL362. * * @param None. * * @return None. ******************************************************************************/ void ADXL362_Init(void) { // Software Reset ADXL362_WriteReg(ADXL362_SOFT_RESET, ADXL362_RESET_CMD); delay_ms(10); ADXL362_WriteReg(ADXL362_SOFT_RESET, 0x00); // Enable Measurement ADXL362_WriteReg(ADXL362_POWER_CTL, (2 << ADXL362_MEASURE)); }
void ADXL362_Init(XSpi *spi_instance_ptr) { // Software Reset ADXL362_WriteReg(spi_instance_ptr, ADXL362_SOFT_RESET, ADXL362_RESET_CMD); DelayMs(10); ADXL362_WriteReg(spi_instance_ptr, ADXL362_SOFT_RESET, 0x00); // Enable Measurement ADXL362_WriteReg(spi_instance_ptr, ADXL362_POWER_CTL, (2 << ADXL362_MEASURE)); }
void ADXL362_PolledInit(void) { SpiInitPolledMode(ACCEL_ADXL362); // Software Reset ADXL362_WriteReg(ADXL362_SOFT_RESET, ADXL362_RESET_CMD); DelayMs(10); ADXL362_WriteReg(ADXL362_SOFT_RESET, 0x00); // Enable Measurement ADXL362_WriteReg(ADXL362_POWER_CTL, (2 << ADXL362_MEASURE)); s_adxl362_state = ADXL362_WaitForCommand; SpiStop(BARO_MS5611); }
/****************************************************************************** * @brief Sets measurement range. * * @param None. * * @return None. ******************************************************************************/ void ADXL362_SetRange(void) { char rx = 0; char rxReg = 0; xil_printf("\n\r>Select measurement range: \n\r"); xil_printf(" [1] +/- 2g\n\r"); xil_printf(" [2] +/- 4g\n\r"); xil_printf(" [3] +/- 8g\n\r"); xil_printf("Press [1] to [3] to select desired range\n\r"); DisableInterrupts(UART_INTERRUPT); // Check if data is available on the UART rx = UartReadChar(); rxReg = (ADXL362_ReadReg(ADXL362_FILTER_CTL) & 0x3F); switch(rx) { case '1': rxReg = 0x00 | rxReg; xil_printf("> +/- 2g measurement range selected\n\r"); break; case '2': rxReg = 0x40 | rxReg; xil_printf("> +/- 4g measurement range selected\n\r"); break; case '3': rxReg = 0x80 | rxReg; xil_printf("> +/- 8g measurement range selected\n\r"); break; default: xil_printf("> wrong measurement range\n\r"); break; } ADXL362_WriteReg(ADXL362_FILTER_CTL, rxReg); EnableInterrupts(UART_INTERRUPT); rxData = 0; xil_printf("\n\r"); ADXL362_DisplayMenu(); }