fancy lampje

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FXOS8700Q FastPWM

Revision:
16:2d115aa2773e
Parent:
15:c4799ad02cdc
Child:
17:d1acb6888b82
--- a/main.cpp	Fri Oct 18 09:42:36 2019 +0000
+++ b/main.cpp	Fri Oct 18 10:14:17 2019 +0000
@@ -34,6 +34,7 @@
 volatile float EMG_min1=1;
 volatile float EMG_max1=0;
 volatile bool ignore_peaks=false;
+volatile bool ignore_turn=true;
 enum states{Waiting,Position_calibration,EMG_calibration,Homing,Operating,Demo,Failure};
 states currentState=Waiting;
 
@@ -115,13 +116,17 @@
 {
     ignore_peaks=false;
 }
+void start_ignore_turn(void)
+{
+    ignore_turn=true;
+}
 
 void set_PWM(void)
 {
    static bool motor_on=false;
    float Q0;
    Q0=2.0f*(P0-(EMG_min0+EMG_max0)/2.0f)/(EMG_max0-EMG_min0);
-   if (Q0>0.5 && !ignore_peaks)
+   if (Q0>0.3 && !ignore_peaks)
    {
         if (!motor_on)
         {
@@ -130,14 +135,23 @@
             ignore_peaks=true;
             motor_on=true;
         }
-        else
+        else if(ignore_turn)
         {
             motor1_pwm.write(0.0f);
             EMG_peak.attach(unignore_peaks,1);
+            EMG_peak.attach(start_ignore_turn,1.5);
+            ignore_turn=false;
             ignore_peaks=true;
             motor_on=false;
         }
-        
+        else
+        {
+            motor1_pwm.write(1.0f);
+            dir1=!dir1;
+            EMG_peak.attach(unignore_peaks,1);
+            ignore_peaks=true;
+            motor_on=true;
+        } 
     }
    motor2_pwm.write(ain1.read());
 }