Team Fox / Mbed 2 deprecated workinQM_5thJan_azad

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of workinQM_10thDec by Team Fox

Revision:
60:bd1498f03319
Parent:
59:0fc0bfafaa9f
Child:
63:55d32e7dcad7
--- a/ACS.cpp	Sun Sep 04 19:06:02 2016 +0000
+++ b/ACS.cpp	Sat Oct 08 09:19:13 2016 +0000
@@ -570,6 +570,278 @@
     return 0;
 }
 
+int PARAMETER_TRANSFER_GYRO(int gyro_rng)
+{
+    
+    //READ_PARAMETER();
+    if(gyro_rng ==0)
+        return 0;
+    char range[5];
+    
+
+    range[0] = 0x64;
+    range[1] = 0x4B;
+    i2c.write(SLAVE_ADDR,range,5);
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0] = 0x54;
+    range[1] = 0x80;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0x4B)))
+    {
+        printf("Parameter transfer read failed \r\n");
+        return 0;
+    }
+    
+    range[0]=0x3B;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,4);
+    
+    printf("range[0]   range[1]   range[2]   range[3]  :   %.02X   %.02X   %.02X    %.02X   \r\n",range[0] ,range[1] , range[2] ,range[3]);
+    
+    //range[0] = 0x64;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    //range[0] = 0x54;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    //wait_ms(4000);
+    
+    
+    
+    range[0] = 0x60;
+    
+    
+    range[1] = (int)(gyro_rng%256);    //1000
+    range[2] = (int)(gyro_rng/256);
+    
+    //range[1]= 0x88;
+    //range[2] = 0x13;    //5000
+    
+    range[3] = 0x00;
+    range[4] = 0x00;
+    i2c.write(SLAVE_ADDR,range,5);
+    
+    range[0] = 0x64;
+    range[1] = 0xCB;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    
+    //range[0] = 0x54;
+    //range[1] = 0x80;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0xCB)))
+    {
+        printf("Parameter transfer failed \r\n");
+        return 0;
+    }
+    
+    printf("Parameter transfer success\r\n");
+    //wait_ms(4000);
+    //range[0] = 0x64;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,5);
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+   // range[0] = 0x54;
+   // range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    
+    printf("Reading parameter\r\n");
+    //READ_PARAMETER();
+    
+    range[0] = 0x64;
+    range[1] = 0x4B;
+    i2c.write(SLAVE_ADDR,range,5);
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    //range[0] = 0x54;
+    //range[1] = 0x80;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0x4B)))
+    {
+        printf("Parameter transfer read failed \r\n");
+        return 0;
+    }
+    
+    range[0]=0x3B;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,4);
+    
+    printf("range[0]   range[1]   range[2]   range[3]  :   %.02X   %.02X   %.02X    %.02X   \r\n",range[0] ,range[1] , range[2] ,range[3]);
+    
+    range[0] = 0x64;
+    range[1] = 0x00;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0] = 0x54;
+    range[1] = 0x00;
+    i2c.write(SLAVE_ADDR,range,2);
+
+    
+    return 1;
+    
+}
+
+int PARAMETER_TRANSFER_MAG(int mag_rng)
+{
+    
+    //READ_PARAMETER();
+    if(mag_rng ==0)
+        return 0;
+    char range[5];
+    
+
+    range[0] = 0x64;
+    range[1] = 0x4A;
+    i2c.write(SLAVE_ADDR,range,5);
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0] = 0x54;
+    range[1] = 0x80;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0x4B)))
+    {
+        printf("Parameter transfer read failed \r\n");
+        return 0;
+    }
+    
+    range[0]=0x3B;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,4);
+    
+    printf("range[0]   range[1]   range[2]   range[3]  :   %.02X   %.02X   %.02X    %.02X   \r\n",range[0] ,range[1] , range[2] ,range[3]);
+    
+    //range[0] = 0x64;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    //range[0] = 0x54;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    //wait_ms(4000);
+    
+    
+    
+    range[0] = 0x60;
+    
+    
+    range[1] = (int)(mag_rng%256);    //1000
+    range[2] = (int)(mag_rng/256);
+    
+    //range[1]= 0x88;
+    //range[2] = 0x13;    //5000
+    
+    range[3] = 0x00;
+    range[4] = 0x00;
+    i2c.write(SLAVE_ADDR,range,5);
+    
+    range[0] = 0x64;
+    range[1] = 0xCA;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    
+    //range[0] = 0x54;
+    //range[1] = 0x80;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0xCB)))
+    {
+        printf("Parameter transfer failed \r\n");
+        return 0;
+    }
+    
+    printf("Parameter transfer success\r\n");
+    //wait_ms(4000);
+    //range[0] = 0x64;
+    //range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,5);
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+   // range[0] = 0x54;
+   // range[1] = 0x00;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    
+    printf("Reading parameter\r\n");
+    //READ_PARAMETER();
+    
+    range[0] = 0x64;
+    range[1] = 0x4A;
+    i2c.write(SLAVE_ADDR,range,5);
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    //range[0] = 0x54;
+    //range[1] = 0x80;
+    //i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0]=0x3A;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,1);
+    
+    printf("ACK_PARA  : %.02X",range[0]);
+    
+    if(range[0] != ((char)(0x4B)))
+    {
+        printf("Parameter transfer read failed \r\n");
+        return 0;
+    }
+    
+    range[0]=0x3B;
+    i2c.write(SLAVE_ADDR,range,1);
+    i2c.read(SLAVE_ADDR_READ,range,4);
+    
+    printf("range[0]   range[1]   range[2]   range[3]  :   %.02X   %.02X   %.02X    %.02X   \r\n",range[0] ,range[1] , range[2] ,range[3]);
+    
+    range[0] = 0x64;
+    range[1] = 0x00;
+    i2c.write(SLAVE_ADDR,range,2);
+    
+    range[0] = 0x54;
+    range[1] = 0x00;
+    i2c.write(SLAVE_ADDR,range,2);
+
+    
+    return 1;
+    
+}
+
 int SENSOR_INIT()
 {   
 ///    acs_pc.printf("Entered sensor init\n \r");
@@ -747,6 +1019,9 @@
                   return 0;
             }
         
+        PARAMETER_TRANSFER_GYRO(0);  // dont set range //PARAMETER of function sets range of gyroscope
+        PARAMETER_TRANSFER_MAG(0);   // dont set range //PARAMETER of function sets range of magnetometer
+        
         cmd[0]=SENTRALSTATUS;
         ack = i2c.write(SLAVE_ADDR,cmd,1);
         if( ack!=0)