@@ -33,37 +33,32 @@ uint8_t QwiicKX13xCore::beginCore(uint8_t deviceAddress, TwoWire &i2cPort)
3333
3434uint8_t  QwiicKX13xCore::beginSPICore (uint8_t  CSPin, uint32_t  spiPortSpeed, SPIClass &spiPort)
3535{
36+   uint8_t  partID;
37+ 
3638	_i2cPort = NULL ;
37- 	_spiPortSpeed = spiPortSpeed;
3839  _spiPort = &spiPort;
40+ 	_cs = CSPin;
3941
4042	if ( _spiPortSpeed > 10000000  )
4143    _spiPortSpeed = 10000000 ;
4244
43- 	_cs = CSPin;
44- 	pinMode (_cs, OUTPUT);
45- 	digitalWrite (_cs, HIGH);
46- 	// writeBit(INC1, SPI3E, 1); //Enable SPI
47- 	// _i2cPort->end();
45+ 	_spiPortSpeed = spiPortSpeed;
46+ 
4847
49- //  CPOL and CPHA are demonstrated on pg 25 of Specification Data sheet  
50- //  CPOL = 0, CPHA = 0 SPI_MODE0
48+ 	 //  CPOL and CPHA are demonstrated on pg 25 of Specification Data sheet  
49+ 	 //  CPOL = 0, CPHA = 0 SPI_MODE0
5150#ifdef  ESP32
5251  kxSPISettings = SPISettings (spiPortSpeed, SPI_MSBFIRST, SPI_MODE0);
5352#else  
5453  kxSPISettings = SPISettings (spiPortSpeed, MSBFIRST, SPI_MODE0);
5554#endif 
56- // #ifdef _MK20DX256_ //Teensy
57-  //  kxSPISettings = SPISettings(spiPortSpeed, MSBFIRST, SPI_MODE0)
58- // #endif
5955
60-   uint8_t  partID;
6156  KX13X_STATUS_t status = readRegister (&partID, KX13X_WHO_AM_I);
57+ 
6258  if ( status != KX13X_SUCCESS ) 
6359    return  status;
64-   else     
65-     return  partID;
66-   
60+ 
61+ 	return  partID;
6762}
6863
6964//  This function sets various register with regards to these pre-determined
@@ -411,31 +406,36 @@ KX13X_STATUS_t QwiicKX13xCore::readRegister(uint8_t *dataPointer, uint8_t reg)
411406{
412407
413408	if ( _i2cPort == NULL  ) {
409+ 
414410		_spiPort->beginTransaction (kxSPISettings);
415411		digitalWrite (_cs, LOW);
416- 		reg |= SPI_READ; 
412+ 
413+ 		reg = (reg | SPI_READ); 
417414    _spiPort->transfer (reg);
418-     *dataPointer = _spiPort->transfer (0x00 );
415+ 
416+ 		*dataPointer = _spiPort->transfer (0x00 );
417+ 
419418		digitalWrite (_cs, HIGH);
420419		_spiPort->endTransaction ();
420+ 
421421    return  KX13X_SUCCESS;
422422	}
423423
424- 	else  {
425424
426- 		uint8_t  i2cResult;
427-     _i2cPort->beginTransmission (_deviceAddress);
428- 		_i2cPort->write (reg);
429-     i2cResult = _i2cPort->endTransmission (false ); 
430-     if ( i2cResult != 0  )
431-       return  KX13X_I2C_ERROR; // Error: Sensor did not ack
432-     i2cResult = _i2cPort->requestFrom (static_cast <uint8_t >(_deviceAddress), static_cast <uint8_t >(1 )); // returns number of bytes
433-     if ( i2cResult != 0 ) {
434-       *dataPointer = _i2cPort->read ();
435-       return  KX13X_SUCCESS;
436-     }
437-     return  KX13X_I2C_ERROR; // Error: Sensor did not ack
438- 	}
425+ 	uint8_t  i2cResult;
426+ 
427+ 	_i2cPort->beginTransmission (_deviceAddress);
428+ 	_i2cPort->write (reg);
429+ 	i2cResult = _i2cPort->endTransmission (false ); 
430+ 	
431+ 	if ( i2cResult != 0  )
432+ 		return  KX13X_I2C_ERROR; // Error: Sensor did not ack
433+ 														// 
434+ 	_i2cPort->requestFrom (static_cast <uint8_t >(_deviceAddress), static_cast <uint8_t >(1 )); // returns number of bytes
435+ 																																																		// 
436+ 	*dataPointer = _i2cPort->read ();
437+ 	return  KX13X_SUCCESS;
438+ 	
439439}
440440
441441// Sends a request to read a number of registers
@@ -445,7 +445,7 @@ KX13X_STATUS_t QwiicKX13xCore::readMultipleRegisters(uint8_t reg, uint8_t dataBu
445445	if ( _i2cPort == NULL  ) {
446446		_spiPort->beginTransaction (kxSPISettings);
447447		digitalWrite (_cs, LOW);
448- 		reg |=  SPI_READ;
448+ 		reg = (reg |  SPI_READ) ;
449449    _spiPort->transfer (reg);
450450		dataBuffer[0 ] = _spiPort->transfer (0x00 ); // first byte on transfer of address and read bit
451451		for (size_t  i = 1 ; i < numBytes; i++) {
@@ -581,11 +581,14 @@ bool QwiicKX132::begin(uint8_t kxAddress, TwoWire &i2cPort){
581581//  register matches the correct value. Uses SPI for data transfer.
582582bool  QwiicKX132::beginSPI (uint8_t  csPin, uint32_t  spiPortSpeed, SPIClass &spiPort){
583583
584-   uint8_t  partID = beginSPICore (csPin, spiPortSpeed, spiPort); 
584+   uint8_t  partID; 
585+ 
586+ 	partID =	beginSPICore (csPin, spiPortSpeed, spiPort); 
587+ 	
585588  if ( partID == KX132_WHO_AM_I ) 
586589    return  true ; 
587-    else   
588-      return  false ;
590+ 
591+ 	 return  false ;
589592}
590593
591594//  Grabs raw accel data and passes it to the following function to be
@@ -668,11 +671,13 @@ bool QwiicKX134::begin(uint8_t kxAddress, TwoWire &i2cPort){
668671//  register matches the correct value. Uses SPI for data transfer.
669672bool  QwiicKX134::beginSPI (uint8_t  csPin, uint32_t  spiPortSpeed, SPIClass &spiPort){
670673
671-   uint8_t  partID = beginSPICore (csPin, spiPortSpeed, spiPort); 
674+   uint8_t  partID; 
675+ 	partID = beginSPICore (csPin, spiPortSpeed, spiPort); 
676+ 
672677  if ( partID == KX134_WHO_AM_I ) 
673678    return  true ; 
674-    else   
675-      return  false ;
679+ 
680+ 	 return  false ;
676681}
677682
678683//  Grabs raw accel data and passes it to the following function to be
0 commit comments