Code for measuring the signal with a specified length and sampling rate, and saving it on a SD card.

Dependencies:   EALib I2S mbed

Committer:
msamadani
Date:
Thu Oct 05 17:44:39 2017 +0000
Revision:
2:8c5b6522139f
Parent:
1:a514e4de034d
A version of the code that initializes the SD RAM, activates the codec, measures the signal and saves the signal onto the SD Card.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
msamadani 1:a514e4de034d 1 //
msamadani 1:a514e4de034d 2 // Academic License - for use in teaching, academic research, and meeting
msamadani 1:a514e4de034d 3 // course requirements at degree granting institutions only. Not for
msamadani 1:a514e4de034d 4 // government, commercial, or other organizational use.
msamadani 1:a514e4de034d 5 // File: envSignal_emxutil.cpp
msamadani 1:a514e4de034d 6 //
msamadani 1:a514e4de034d 7 // MATLAB Coder version : 3.3
msamadani 1:a514e4de034d 8 // C/C++ source code generated on : 13-Jul-2017 15:47:47
msamadani 1:a514e4de034d 9 //
msamadani 1:a514e4de034d 10
msamadani 1:a514e4de034d 11 // Include Files
msamadani 1:a514e4de034d 12 #include "envSignal.h"
msamadani 1:a514e4de034d 13 #include "envSignal_emxutil.h"
msamadani 1:a514e4de034d 14
msamadani 1:a514e4de034d 15 // Function Definitions
msamadani 1:a514e4de034d 16
msamadani 1:a514e4de034d 17 //
msamadani 1:a514e4de034d 18 // Arguments : emxArray__common *emxArray
msamadani 1:a514e4de034d 19 // int oldNumel
msamadani 1:a514e4de034d 20 // unsigned int elementSize
msamadani 1:a514e4de034d 21 // Return Type : void
msamadani 1:a514e4de034d 22 //
msamadani 1:a514e4de034d 23 void emxEnsureCapacity(emxArray__common *emxArray, int oldNumel, unsigned int
msamadani 1:a514e4de034d 24 elementSize)
msamadani 1:a514e4de034d 25 {
msamadani 1:a514e4de034d 26 int newNumel;
msamadani 1:a514e4de034d 27 int i;
msamadani 1:a514e4de034d 28 void *newData;
msamadani 1:a514e4de034d 29 if (oldNumel < 0) {
msamadani 1:a514e4de034d 30 oldNumel = 0;
msamadani 1:a514e4de034d 31 }
msamadani 1:a514e4de034d 32
msamadani 1:a514e4de034d 33 newNumel = 1;
msamadani 1:a514e4de034d 34 for (i = 0; i < emxArray->numDimensions; i++) {
msamadani 1:a514e4de034d 35 newNumel *= emxArray->size[i];
msamadani 1:a514e4de034d 36 }
msamadani 1:a514e4de034d 37
msamadani 1:a514e4de034d 38 if (newNumel > emxArray->allocatedSize) {
msamadani 1:a514e4de034d 39 i = emxArray->allocatedSize;
msamadani 1:a514e4de034d 40 if (i < 16) {
msamadani 1:a514e4de034d 41 i = 16;
msamadani 1:a514e4de034d 42 }
msamadani 1:a514e4de034d 43
msamadani 1:a514e4de034d 44 while (i < newNumel) {
msamadani 1:a514e4de034d 45 if (i > 1073741823) {
msamadani 1:a514e4de034d 46 i = MAX_int32_T;
msamadani 1:a514e4de034d 47 } else {
msamadani 1:a514e4de034d 48 i <<= 1;
msamadani 1:a514e4de034d 49 }
msamadani 1:a514e4de034d 50 }
msamadani 1:a514e4de034d 51
msamadani 1:a514e4de034d 52 newData = calloc((unsigned int)i, elementSize);
msamadani 1:a514e4de034d 53 if (emxArray->data != NULL) {
msamadani 1:a514e4de034d 54 memcpy(newData, emxArray->data, elementSize * oldNumel);
msamadani 1:a514e4de034d 55 if (emxArray->canFreeData) {
msamadani 1:a514e4de034d 56 free(emxArray->data);
msamadani 1:a514e4de034d 57 }
msamadani 1:a514e4de034d 58 }
msamadani 1:a514e4de034d 59
msamadani 1:a514e4de034d 60 emxArray->data = newData;
msamadani 1:a514e4de034d 61 emxArray->allocatedSize = i;
msamadani 1:a514e4de034d 62 emxArray->canFreeData = true;
msamadani 1:a514e4de034d 63 }
msamadani 1:a514e4de034d 64 }
msamadani 1:a514e4de034d 65
msamadani 1:a514e4de034d 66 //
msamadani 1:a514e4de034d 67 // Arguments : emxArray_creal32_T **pEmxArray
msamadani 1:a514e4de034d 68 // Return Type : void
msamadani 1:a514e4de034d 69 //
msamadani 1:a514e4de034d 70 void emxFree_creal32_T(emxArray_creal32_T **pEmxArray)
msamadani 1:a514e4de034d 71 {
msamadani 1:a514e4de034d 72 if (*pEmxArray != (emxArray_creal32_T *)NULL) {
msamadani 1:a514e4de034d 73 if (((*pEmxArray)->data != (creal32_T *)NULL) && (*pEmxArray)->canFreeData)
msamadani 1:a514e4de034d 74 {
msamadani 1:a514e4de034d 75 free((void *)(*pEmxArray)->data);
msamadani 1:a514e4de034d 76 }
msamadani 1:a514e4de034d 77
msamadani 1:a514e4de034d 78 free((void *)(*pEmxArray)->size);
msamadani 1:a514e4de034d 79 free((void *)*pEmxArray);
msamadani 1:a514e4de034d 80 *pEmxArray = (emxArray_creal32_T *)NULL;
msamadani 1:a514e4de034d 81 }
msamadani 1:a514e4de034d 82 }
msamadani 1:a514e4de034d 83
msamadani 1:a514e4de034d 84 //
msamadani 1:a514e4de034d 85 // Arguments : emxArray_real32_T **pEmxArray
msamadani 1:a514e4de034d 86 // Return Type : void
msamadani 1:a514e4de034d 87 //
msamadani 1:a514e4de034d 88 void emxFree_real32_T(emxArray_real32_T **pEmxArray)
msamadani 1:a514e4de034d 89 {
msamadani 1:a514e4de034d 90 if (*pEmxArray != (emxArray_real32_T *)NULL) {
msamadani 1:a514e4de034d 91 if (((*pEmxArray)->data != (float *)NULL) && (*pEmxArray)->canFreeData) {
msamadani 1:a514e4de034d 92 free((void *)(*pEmxArray)->data);
msamadani 1:a514e4de034d 93 }
msamadani 1:a514e4de034d 94
msamadani 1:a514e4de034d 95 free((void *)(*pEmxArray)->size);
msamadani 1:a514e4de034d 96 free((void *)*pEmxArray);
msamadani 1:a514e4de034d 97 *pEmxArray = (emxArray_real32_T *)NULL;
msamadani 1:a514e4de034d 98 }
msamadani 1:a514e4de034d 99 }
msamadani 1:a514e4de034d 100
msamadani 1:a514e4de034d 101 //
msamadani 1:a514e4de034d 102 // Arguments : emxArray_creal32_T **pEmxArray
msamadani 1:a514e4de034d 103 // int numDimensions
msamadani 1:a514e4de034d 104 // Return Type : void
msamadani 1:a514e4de034d 105 //
msamadani 1:a514e4de034d 106 void emxInit_creal32_T(emxArray_creal32_T **pEmxArray, int numDimensions)
msamadani 1:a514e4de034d 107 {
msamadani 1:a514e4de034d 108 emxArray_creal32_T *emxArray;
msamadani 1:a514e4de034d 109 int i;
msamadani 1:a514e4de034d 110 *pEmxArray = (emxArray_creal32_T *)malloc(sizeof(emxArray_creal32_T));
msamadani 1:a514e4de034d 111 emxArray = *pEmxArray;
msamadani 1:a514e4de034d 112 emxArray->data = (creal32_T *)NULL;
msamadani 1:a514e4de034d 113 emxArray->numDimensions = numDimensions;
msamadani 1:a514e4de034d 114 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
msamadani 1:a514e4de034d 115 emxArray->allocatedSize = 0;
msamadani 1:a514e4de034d 116 emxArray->canFreeData = true;
msamadani 1:a514e4de034d 117 for (i = 0; i < numDimensions; i++) {
msamadani 1:a514e4de034d 118 emxArray->size[i] = 0;
msamadani 1:a514e4de034d 119 }
msamadani 1:a514e4de034d 120 }
msamadani 1:a514e4de034d 121
msamadani 1:a514e4de034d 122 //
msamadani 1:a514e4de034d 123 // Arguments : emxArray_real32_T **pEmxArray
msamadani 1:a514e4de034d 124 // int numDimensions
msamadani 1:a514e4de034d 125 // Return Type : void
msamadani 1:a514e4de034d 126 //
msamadani 1:a514e4de034d 127 void emxInit_real32_T(emxArray_real32_T **pEmxArray, int numDimensions)
msamadani 1:a514e4de034d 128 {
msamadani 1:a514e4de034d 129 emxArray_real32_T *emxArray;
msamadani 1:a514e4de034d 130 int i;
msamadani 1:a514e4de034d 131 *pEmxArray = (emxArray_real32_T *)malloc(sizeof(emxArray_real32_T));
msamadani 1:a514e4de034d 132 emxArray = *pEmxArray;
msamadani 1:a514e4de034d 133 emxArray->data = (float *)NULL;
msamadani 1:a514e4de034d 134 emxArray->numDimensions = numDimensions;
msamadani 1:a514e4de034d 135 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
msamadani 1:a514e4de034d 136 emxArray->allocatedSize = 0;
msamadani 1:a514e4de034d 137 emxArray->canFreeData = true;
msamadani 1:a514e4de034d 138 for (i = 0; i < numDimensions; i++) {
msamadani 1:a514e4de034d 139 emxArray->size[i] = 0;
msamadani 1:a514e4de034d 140 }
msamadani 1:a514e4de034d 141 }
msamadani 1:a514e4de034d 142
msamadani 1:a514e4de034d 143 //
msamadani 1:a514e4de034d 144 // Arguments : emxArray_real32_T **pEmxArray
msamadani 1:a514e4de034d 145 // int numDimensions
msamadani 1:a514e4de034d 146 // Return Type : void
msamadani 1:a514e4de034d 147 //
msamadani 1:a514e4de034d 148 void emxInit_real32_T1(emxArray_real32_T **pEmxArray, int numDimensions)
msamadani 1:a514e4de034d 149 {
msamadani 1:a514e4de034d 150 emxArray_real32_T *emxArray;
msamadani 1:a514e4de034d 151 int i;
msamadani 1:a514e4de034d 152 *pEmxArray = (emxArray_real32_T *)malloc(sizeof(emxArray_real32_T));
msamadani 1:a514e4de034d 153 emxArray = *pEmxArray;
msamadani 1:a514e4de034d 154 emxArray->data = (float *)NULL;
msamadani 1:a514e4de034d 155 emxArray->numDimensions = numDimensions;
msamadani 1:a514e4de034d 156 emxArray->size = (int *)malloc((unsigned int)(sizeof(int) * numDimensions));
msamadani 1:a514e4de034d 157 emxArray->allocatedSize = 0;
msamadani 1:a514e4de034d 158 emxArray->canFreeData = true;
msamadani 1:a514e4de034d 159 for (i = 0; i < numDimensions; i++) {
msamadani 1:a514e4de034d 160 emxArray->size[i] = 0;
msamadani 1:a514e4de034d 161 }
msamadani 1:a514e4de034d 162 }
msamadani 1:a514e4de034d 163
msamadani 1:a514e4de034d 164 //
msamadani 1:a514e4de034d 165 // File trailer for envSignal_emxutil.cpp
msamadani 1:a514e4de034d 166 //
msamadani 1:a514e4de034d 167 // [EOF]
msamadani 1:a514e4de034d 168 //
msamadani 1:a514e4de034d 169