void ads1246_write1byte(uint8_t addr, uint8_t data){ SPI_xfer(ADS1246_MPX6115A_SPI,0x40|addr); SPI_xfer(ADS1246_MPX6115A_SPI,0x00); SPI_xfer(ADS1246_MPX6115A_SPI,data); }
uint8_t ads1246_read1byte(uint8_t addr){ uint8_t output=0; SPI_xfer(ADS1246_MPX6115A_SPI,0x20|addr); SPI_xfer(ADS1246_MPX6115A_SPI,0x00); output = SPI_xfer(ADS1246_MPX6115A_SPI,0xFF); return output; }
void mpu9250_write_byte(uint8_t addr, uint8_t data) { MPU9250_SELECT(); SPI_xfer(MPU9250_SPI, addr); SPI_xfer(MPU9250_SPI, data); MPU9250_DESELECT(); }
int32_t ads1246_readADCconversion(void){ uint8_t rxdat1=0,rxdat2=0,rxdat3=0; rxdat1 = SPI_xfer(ADS1246_MPX6115A_SPI,0xFF); rxdat2 = SPI_xfer(ADS1246_MPX6115A_SPI,0xFF); rxdat3 = SPI_xfer(ADS1246_MPX6115A_SPI,0xFF); return (uint32_t)rxdat1<<16 | (uint32_t)rxdat2<<8 | (uint32_t)rxdat3; }
uint8_t mpu9250_read_byte(uint8_t addr) { uint8_t rxData; MPU9250_SELECT(); SPI_xfer(MPU9250_SPI, addr | 0x80); rxData = SPI_xfer(MPU9250_SPI, 0xff); MPU9250_DESELECT(); return rxData; }
unsigned int Spi::xfer(unsigned int data) { if (m_hwspi_port>=0) { return SPI_xfer(m_hwspi_port,data); } return 0xfffff; }
void mpu9250_read_accel_temp_gyro(imu_unscaled_data_t *imu_unscaledData) { uint8_t buffer[14]; MPU9250_SELECT(); SPI_xfer(MPU9250_SPI, MPU9250_ACCEL_XOUT_H | 0x80); buffer[0] = SPI_xfer(MPU9250_SPI, 0xff); buffer[1] = SPI_xfer(MPU9250_SPI, 0xff); buffer[2] = SPI_xfer(MPU9250_SPI, 0xff); buffer[3] = SPI_xfer(MPU9250_SPI, 0xff); buffer[4] = SPI_xfer(MPU9250_SPI, 0xff); buffer[5] = SPI_xfer(MPU9250_SPI, 0xff); buffer[6] = SPI_xfer(MPU9250_SPI, 0xff); buffer[7] = SPI_xfer(MPU9250_SPI, 0xff); buffer[8] = SPI_xfer(MPU9250_SPI, 0xff); buffer[9] = SPI_xfer(MPU9250_SPI, 0xff); buffer[10] = SPI_xfer(MPU9250_SPI, 0xff); buffer[11] = SPI_xfer(MPU9250_SPI, 0xff); buffer[12] = SPI_xfer(MPU9250_SPI, 0xff); buffer[13] = SPI_xfer(MPU9250_SPI, 0xff); imu_unscaledData->acc[0] = ((uint16_t)buffer[0] << 8) | (uint16_t)buffer[1]; imu_unscaledData->acc[1] = ((uint16_t)buffer[2] << 8) | (uint16_t)buffer[3]; imu_unscaledData->acc[2] = ((uint16_t)buffer[4] << 8) | (uint16_t)buffer[5]; imu_unscaledData->temp = ((uint16_t)buffer[6] << 8) | (uint16_t)buffer[7]; imu_unscaledData->gyro[0] = ((uint16_t)buffer[8] << 8) | (uint16_t)buffer[9]; imu_unscaledData->gyro[1] = ((uint16_t)buffer[10] << 8) | (uint16_t)buffer[11]; imu_unscaledData->gyro[2] = ((uint16_t)buffer[12] << 8) | (uint16_t)buffer[13]; MPU9250_DESELECT(); }