LoadCell_STM32_SDRAM_v1

Dependencies:   BSP_DISCO_F746NG DISCO-F746NG_SDRAMBlockDevice LCD_DISCO_F746NG mbed

Fork of LoadCell_STM32 by Tapio Valli

Revision:
5:f8d3bcb187de
Parent:
3:22b1719c2b92
Child:
6:641b171407c9
--- a/functions.cpp	Sat Feb 24 11:31:09 2018 +0000
+++ b/functions.cpp	Sat Feb 24 16:18:46 2018 +0000
@@ -4,6 +4,8 @@
 #include "mbed.h"
 #include "LCD_DISCO_F746NG.h"
 
+#include <stdio.h>
+#include <errno.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -19,26 +21,14 @@
 LCD_DISCO_F746NG lcd2;
 
 void initArray(Array *a, size_t initialSize) {
-  a->array = (uint32_t *)malloc(initialSize * sizeof(uint32_t));
+  a->array = (uint16_t *)malloc(initialSize * sizeof(uint16_t));
   a->used = 0;
   a->size = initialSize;
 }
 
-void insertArray(Array *a, uint32_t element) {
-  // a->used is the number of used entries, because a->array[a->used++] 
-  // updates a->used only *after* the array has been accessed.
-  // Therefore a->used can go up to a->size
-   
-  if (a->used == a->size) {
-    a->size *= 2;
-    a->array = (uint32_t *)realloc(a->array, a->size * sizeof(uint32_t));
-  }
-  a->array[a->used++] = element;
-}
-
-void insertArray2(Array *a, uint32_t newsize) {
+void insertArray(Array *a, uint32_t newsize) {
     a->size = newsize;
-    a->array = (uint32_t *)realloc(a->array, a->size * sizeof(uint32_t));
+    a->array = (uint16_t *)realloc(a->array, a->size * sizeof(uint16_t));
     a->used = 0;
 }
 
@@ -171,7 +161,7 @@
   
     // Measure NoOfPoints values (f.ex. 19200) 
     for(i=0;i<NoOfPoints;i++) {
-        Data->array[i]=(uint32_t)((0x0000 << 16) | ain.read_u16());
+        Data->array[i]=(uint16_t)(ain.read_u16());
         wait_us(Period_us);
     }
 
@@ -197,7 +187,7 @@
         
         // Read AvgSize samples
         for(i2=i1;i2<i1+AvgSize;i2++) {
-            BufferSum=BufferSum+Data->array[i2];
+            BufferSum=BufferSum+(uint32_t)Data->array[i2];
         }
         
         BufferAvg=BufferSum/AvgSize;