def spi_write(self, address, value): # Write value (1 byte) to address # Send instruction (command bit7=1 for write), address[6:0], and value address=address+0x80 self.spi.xfer([address, value])
def get_gyro_out_once(self): # The first readback should be discarded temp =self.spi_read(self.X_GYRO_OUT) x_gyro_out=self.spi_read(self.Y_GYRO_OUT) y_gyro_out=self.spi_read(self.Z_GYRO_OUT) z_gyro_out=self.spi_read(self.Z_GYRO_OUT) return self.twos_comp(x_gyro_out,16),self.twos_comp(y_gyro_out,16),self.twos_comp(z_gyro_out,16)
def get_accl_out_once(self): # The first readback should be discarded temp =self.spi_read(self.X_ACCL_OUT) x_accl_out=self.spi_read(self.Y_ACCL_OUT) y_accl_out=self.spi_read(self.Z_ACCL_OUT) z_accl_out=self.spi_read(self.Z_ACCL_OUT) return self.twos_comp(x_accl_out,16),self.twos_comp(y_accl_out,16),self.twos_comp(z_accl_out,16)
def get_gyro_accl_out_32b_once(self): # The first readback should be discarded temp0 =self.spi_read(self.X_GYRO_LOW) x_gyro_low=self.spi_read(self.X_GYRO_OUT) x_gyro_out=self.spi_read(self.Y_GYRO_LOW) y_gyro_low=self.spi_read(self.Y_GYRO_OUT) y_gyro_out=self.spi_read(self.Z_GYRO_LOW) z_gyro_low=self.spi_read(self.Z_GYRO_OUT) z_gyro_out=self.spi_read(self.X_ACCL_LOW) x_accl_low =self.spi_read(self.X_ACCL_OUT) x_accl_out =self.spi_read(self.Y_ACCL_LOW) y_accl_low =self.spi_read(self.Y_ACCL_OUT) y_accl_out =self.spi_read(self.Z_ACCL_LOW) z_accl_low =self.spi_read(self.Z_ACCL_OUT) z_accl_out =self.spi_read(self.Z_ACCL_OUT) x_gyro=x_gyro_out*65536+x_gyro_low y_gyro=y_gyro_out*65536+y_gyro_low z_gyro=z_gyro_out*65536+z_gyro_low x_accl=x_accl_out*65536+x_accl_low y_accl=y_accl_out*65536+y_accl_low z_accl=z_accl_out*65536+z_accl_low return self.twos_comp(x_gyro,32),self.twos_comp(y_gyro,32),self.twos_comp(z_gyro,32), \ self.twos_comp(x_accl,32),self.twos_comp(y_accl,32),self.twos_comp(z_accl,32)