"Sensors Reader" Sample Application for X-NUCLEO-IKS01A1 Expansion Board

Dependencies:   X_NUCLEO_IKS01A1 mbed

Fork of Program2_SensorReader by Make NTU Hackathon

Revision:
2:00f62b148a07
Parent:
1:9458657e49ee
Child:
3:c35414b03a65
--- a/main.cpp	Wed Apr 15 15:56:11 2015 +0200
+++ b/main.cpp	Thu Apr 16 10:38:54 2015 +0200
@@ -64,7 +64,7 @@
 
 
 /*** Macros ------------------------------------------------------------------- ***/
-#define APP_LOOP_PERIOD 1000 // in ms
+#define APP_LOOP_PERIOD 1300 // in ms
 
 #if defined(TARGET_K64F)
 #define USER_BUTTON (SW2)
@@ -127,6 +127,20 @@
 
 
 /*** Helper Functions (2/2) ------------------------------------------------------------ ***/
+/* print floats & doubles */
+static char *printDouble(char* str, double v, int decimalDigits=2)
+{
+  int i = 1;
+  int intPart, fractPart;
+
+  for (;decimalDigits!=0; i*=10, decimalDigits--);
+  intPart = (int)v;
+  fractPart = (int)((v-(double)(int)v)*i);
+  sprintf(str, "%i.%i", intPart, fractPart);
+
+  return str;
+}
+
 /* Initialization function */
 static void init(void) {
 	uint8_t hts221_id;
@@ -137,7 +151,7 @@
 
 	/* Determine ID of Humidity & Tempreture Sensor */
 	mems_expansion_board->ht_sensor.ReadID(&hts221_id);
-    	printf("HTS221_ID = 0x%x\n\t\r", hts221_id);
+    	printf("HTS221_ID = 0x%x (%u)\n", hts221_id, hts221_id);
 }
 
 /* Main cycle function */
@@ -148,9 +162,13 @@
 	AxesRaw_TypeDef MAG_Value;
 	AxesRaw_TypeDef ACC_Value;
 	AxesRaw_TypeDef GYR_Value;
-	
+	char buffer1[32];
+	char buffer2[32];
+	char buffer3[32];
+
 	/* Switch LED On */
 	myled = 1;
+	printf("===\n");
 
 	/* Determine Environmental Values */
         mems_expansion_board->ht_sensor.GetTemperature(&TEMPERATURE_Value);
@@ -161,13 +179,15 @@
         mems_expansion_board->gyroscope.Get_G_Axes((int32_t *)&GYR_Value);
 
 	/* Print Values Out */
-        printf("TEMP: %f HUMIDITY: %f PRESSURE: %f\t\r\n ", 
-	       TEMPERATURE_Value, HUMIDITY_Value, PRESSURE_Value);
-        printf("X_AXIS: %ld, Y_AXIS: %ld, Z_AXIS: %ld\t\r\n ", 
+        printf("TEMP: %s, HUMIDITY: %s, PRESSURE: %s\n", 
+	       printDouble(buffer1, TEMPERATURE_Value), 
+	       printDouble(buffer2, HUMIDITY_Value), 
+	       printDouble(buffer3, PRESSURE_Value));
+        printf("X_MAG: %ld, Y_MAG: %ld, Z_MAG: %ld\n", 
 	       MAG_Value.AXIS_X, MAG_Value.AXIS_Y, MAG_Value.AXIS_Z);
-        printf("X_ACC: %ld, Y_ACC: %ld, Z_ACC: %ld\t\r\n ", 
+        printf("X_ACC: %ld, Y_ACC: %ld, Z_ACC: %ld\n", 
 	       ACC_Value.AXIS_X, ACC_Value.AXIS_Y, ACC_Value.AXIS_Z);
-        printf("X_GYR: %ld, Y_GYR: %ld, Z_GYR: %ld\t\r\n ", 
+        printf("X_GYR: %ld, Y_GYR: %ld, Z_GYR: %ld\n", 
 	       GYR_Value.AXIS_X, GYR_Value.AXIS_Y, GYR_Value.AXIS_Z);
 	
 	/* Switch LED Off */