Galileo Hand Basic Example implemented on FRDM K64F
Dependencies: NOKIA_5110 mbed-dsp mbed
Fork of Nucleo_EMG_Galileo_Hand by
Diff: main.cpp
- Revision:
- 2:12f979d695db
- Parent:
- 1:9472990d8bb4
- Child:
- 3:f784301a5166
--- a/main.cpp Wed Aug 12 17:55:22 2015 +0000 +++ b/main.cpp Wed Aug 12 18:05:29 2015 +0000 @@ -10,15 +10,12 @@ AnalogIn E3(A3); float32_t EMG1, EMG2, EMG3; -float32_t samples[100]; -float32_t samples2[100]; -float32_t samples3[100]; -float32_t abs_output[100]; -float32_t abs_output2[100]; -float32_t abs_output3[100]; -float32_t samplesfi[128]; -float32_t samplesfi2[128]; -float32_t samplesfi3[128]; +float32_t samples[25]; +float32_t samples2[25]; +float32_t samples3[25]; +float32_t abs_output[25]; +float32_t abs_output2[25]; +float32_t abs_output3[25]; float32_t mean = 0.0f, mean2 = 0.0f, mean3 = 0.0f; uint8_t COCO = 0; @@ -46,13 +43,6 @@ __set_PRIMASK(m); COCO = 1; } - -float32_t h[29] = { - 0.005122283331907f,0.005887141527430f,0.008108906860497f,0.011692906924201f,0.016472293441426f,0.022216298876727f,0.028641952887652f,0.035428649080362f, - 0.042234794064957f,0.048715653723188f,0.054541442583407f,0.059414685262420f,0.063085915202651f,0.065366863558607f,0.0661404253491338f,0.065366863558607f, - 0.063085915202651f,0.059414685262420f,0.054541442583407f,0.048715653723188f,0.042234794064957f,0.035428649080362f,0.028641952887652f,0.022216298876727f, - 0.016472293441426f,0.011692906924201f,0.008108906860497f,0.005887141527430f,0.005122283331907f -}; int main() { pc.baud(115200); //Serial com at 115200 bauds @@ -62,15 +52,12 @@ while(1) { if(COCO){ //mean for threshold - arm_abs_f32(samples, abs_output, 100); //rectifier - arm_abs_f32(samples2, abs_output2, 100); //rectifier - arm_abs_f32(samples3, abs_output3, 100); //rectifier - arm_conv_f32(abs_output,100,h,29,samplesfi);//low pass filter - arm_conv_f32(abs_output2,100,h,29,samplesfi2);//low pass filter - arm_conv_f32(abs_output3,100,h,29,samplesfi3);//low pass filter - arm_mean_f32(samplesfi, 128, &mean); - arm_mean_f32(samplesfi2, 128, &mean2); - arm_mean_f32(samplesfi3, 128, &mean3); + arm_abs_f32(samples, abs_output, 25); //rectifier + arm_abs_f32(samples2, abs_output2, 25); //rectifier + arm_abs_f32(samples3, abs_output3, 25); //rectifier + arm_mean_f32(abs_output, 25, &mean); + arm_mean_f32(abs_output, 25, &mean2); + arm_mean_f32(abs_output, 25, &mean3); if ((mean>0.009f)&&(mean2>0.007f)&&(mean3>0.007f)) { myled = 0; }