Code used in the SICE E210/P442 lab practical

Dependencies:   ADXL362 TSL2561 mbed

Revision:
1:f5c993193adc
Parent:
0:69b431195dc4
--- a/main.cpp	Wed Apr 25 19:11:51 2018 +0000
+++ b/main.cpp	Wed Apr 25 21:46:22 2018 +0000
@@ -17,6 +17,7 @@
 #define RANGE     (0x7FFF)
 #define OFFSET    (0x7FFF)
 
+#define SPI_CYCLES 100
 // Configuration for sinewave output
 #define BUFFER_SIZE (360)
 uint16_t buffer[BUFFER_SIZE];
@@ -27,10 +28,14 @@
     printf("Sinewave example\n");
     calculate_sinewave();
     adxl362.reset();
-    wait_ms(600); // we need to wait at least 500ms after ADXL362 reset
+    wait_ms(1000); // we need to wait at least 500ms after ADXL362 reset
     adxl362.set_mode(ADXL362::MEASUREMENT);
-    volatile int8_t x,y,z; 
+    wait_ms(1000); // we need to wait at least 500ms after ADXL362 reset
+    volatile int8_t x,y,z;
+    volatile uint16_t whoami; 
     volatile float light;
+    int spi_trigger_target = 0;
+    
     while(1) {
         for (int i = 0; i < BUFFER_SIZE; i++) {
             my_output.write_u16(buffer[i]);
@@ -39,9 +44,15 @@
         x=adxl362.scanx_u8();
         y=adxl362.scany_u8();
         z=adxl362.scanz_u8();
-       // printf("Accelerometer x = %d y = %d z = %d\r\n",x,y,z);
+        if (spi_trigger_target++ == SPI_CYCLES){
+            spi_trigger_target = 0;
+            whoami = adxl362.read_reg(ADXL362::DEVID_AD);
+        } 
+        light = lightsensor.lux();           
+        // printf("Accelerometer x = %d y = %d z = %d\r\n",x,y,z);
         // printf("Light sensor %f\n\r",lightsensor.lux());
 //        wait_ms(100);
+      
     }
 }