2Chx3dof Magnetrometer supported M-Series Random Sequence Generator Servo Control

Dependencies:   mbed

Sampling Frequency

Sampling Frequency in main.cpp

#define SampleFreq     200   // [Hz]

Auto Stop Setting

Auto-stop Timer 15sec after

    // auto-stop when 15sec after
    if(smpl_cnt>3000){stop_dump();}

The number of 3000 means Sample Count. The number is given by SampleFreq[Hz] * Auto-Stop Time [sec].

M-Series Random Sequence

M-series Random Update Term in main.cpp

// M-series update flag
#define  M_TERM  200;

Unit is sample count.

cf.) 200 equals to 200 [samples] which equals to 1 [second] where SampleFreq = 200 [Hz}.

See above.

M-Series Random Servo Control

Branch:
MPU-9250-MagSensServo
Revision:
2:3470f2c07582
Parent:
1:3bcd844dd707
Child:
3:70be84fad39e
--- a/main.cpp	Tue Feb 02 13:43:21 2021 +0000
+++ b/main.cpp	Tue Feb 02 13:46:13 2021 +0000
@@ -78,7 +78,7 @@
 PwmOut  pwm_(p22);
 
 // M-Series Random Sequence
-Mseries m;      
+Mseries m;
 
 
 void init(void)
@@ -140,16 +140,17 @@
     printf("\nHit Key [s] to start.  Hit Key [r] to finish.\n");
 
 
-    
-    pwm_.period_ms(20);          // servo requires a 20ms period
-    pwm_.pulsewidth_us(KST_SERVO_USEC_MIN);
-    wait(.5);
+    // servo requires a 20ms period
+    pwm_.period_ms(20);
 
-    pwm_.period_ms(20);          // servo requires a 20ms period
-    pwm_.pulsewidth_us(KST_SERVO_USEC_90);
-    wait(.5);
+    while(1) {
+        if(m.update())
+            pwm_.pulsewidth_us(KST_SERVO_USEC_MIN);
+        else
+            pwm_.pulsewidth_us(KST_SERVO_USEC_90);
+        wait(.5);
 
-    
+    }
 }
 
 void eventFunc(void)