Platform drivers for Mbed.

Dependents:   EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more

Revision:
13:c446482b0360
Parent:
12:d85b77f4160c
Child:
14:46aad38346a6
--- a/src/spi.cpp	Fri Aug 14 11:14:13 2020 +0530
+++ b/src/spi.cpp	Fri Aug 14 14:26:41 2020 +0530
@@ -29,6 +29,8 @@
 /********************** Variables and User defined data types *****************/
 /******************************************************************************/
 
+static uint8_t spi_format_bytes = 16; 	// SPI format
+
 /******************************************************************************/
 /************************ Functions Declarations ******************************/
 /******************************************************************************/
@@ -96,8 +98,10 @@
 		  **/
 		spi->frequency(param->max_speed_hz);
 		spi->format(16, param->mode);              // 16-bit data write/read format
+		spi_format_bytes = 16;
 		spi->set_default_write_value(0x00);        // code to write when reading back
 		ss->write(GPIO_HIGH);                      // set SS high
+
 		return SUCCESS;
 	}
 
@@ -154,7 +158,6 @@
 	uint8_t num_of_words;		// Number of words in SPI frame
 	uint16_t rw_data;			// SPI read data
 	uint8_t data_index = 0;		// Data index
-	static uint8_t spi_format = 16;	// SPI format
 
 	if (desc) {
 		spi = (SPI *)(((mbed_spi_desc *)(desc->extra))->spi_port);
@@ -165,14 +168,14 @@
 
 		/* Determine the data transmit/receive format based on parity of data */
 		if (!(bytes_number % 2)) {
-			if (spi_format != 16) {
+			if (spi_format_bytes != 16) {
 				spi->format(16, desc->mode);
-				spi_format = 16;
+				spi_format_bytes = 16;
 			}
 		} else {
-			if (spi_format != 8) {
+			if (spi_format_bytes != 8) {
 				spi->format(8, desc->mode);
-				spi_format = 8;
+				spi_format_bytes = 8;
 			}
 		}