AD7172 library

Revision:
5:eeec01a423be
Parent:
4:c4a844a34c19
Child:
6:694cb68ae500
--- a/ad7172.cpp	Fri May 08 11:56:29 2020 +0000
+++ b/ad7172.cpp	Fri May 08 15:12:40 2020 +0000
@@ -74,7 +74,7 @@
 	
 	_spi.format(8,3); // 8 bits ; POL=1 ; PHASE=1
 	_spi.frequency(10000000); // 10 MHz SPI clock rate
-	
+	continuous_on = 0;
 	cs = new DigitalOut(slave_select); // Define cs as digital out variable referred to slave_select pin
 
 	Reset(); // Calling the AD7172-2 restart function
@@ -103,11 +103,15 @@
 *******************************************************************************/
 void AD7172::start_continuous()
 {
-    data.data = (AD7172_IFMODE_REG_CONT_READ)|AD7172_IFMODE_REG_DATA_STAT;
-    AD7172_PRINTF("CONTCONV");
-    AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",data.data);
-    WriteRegister(AD7172_IFMODE_REG,2); // Writing to IFMODE register
-    enable(); // *cs = 0
+    if(continuous_on == 0)
+    {
+	    data.data = (AD7172_IFMODE_REG_CONT_READ)|AD7172_IFMODE_REG_DATA_STAT;
+	    AD7172_PRINTF("CONTCONV");
+	    AD7172_PRINTF("Register: IFMODE\tWrite: 0x%04X",data.data);
+	    WriteRegister(AD7172_IFMODE_REG,2); // Writing to IFMODE register
+	    enable(); // *cs = 0
+	    continuous_on = 1;
+    }
 }
 
 /******************************************************************************
@@ -116,30 +120,14 @@
 *******************************************************************************/
 void AD7172::stop_continuous()
 {
-	while(_rdy == 1)
+	if(continuous_on == 1)
 	{
-	
-	}
-	o
-	_spi.write(0x44);
-	
-	
-	/*
-	if(_rdy == 0){
-		ReadDataContinuousStatus();
+		*cs=0;
+		while(_rdy == 1){}
 		_spi.write(0x44);
+		*cs=1;
+		continuous_on =0;
 	}
-	
-	for(i=0;i<4;i++)
-		_spi.write(0x00);
-	
-	    //ReadDataContinuousStatus();
-	//ReadDataRegister();
-	*/
-
-	*cs=1;
-
-
 }
 
 /******************************************************************************