Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: sm_esc.cpp
- Revision:
- 1:8faddee0e52f
- Child:
- 2:e9d928fd327a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sm_esc.cpp Sat Sep 28 22:29:57 2019 +0000
@@ -0,0 +1,81 @@
+#include "sm_esc.h"
+
+PwmOut pwm_ESC(PD_12);
+DigitalOut relay_ESC(PG_0);
+E_STATE_ESC e_stateESC;
+
+void init_sm_esc()
+{
+ e_stateESC = ESC_DISABLED;
+ return;
+}
+
+void update_sm_esc()
+{
+ E_STATE_ESC next_state;
+
+ switch(e_stateESC) {
+ case ESC_DISABLED:
+ if(b_UTILS_flag_button) {
+ next_state = ESC_INIT;
+ b_UTILS_flag_button = false;
+ }
+ break;
+ case ESC_INIT:
+ next_state = ESC_COMMAND;
+ break;
+ case ESC_COMMAND:
+ if(b_UTILS_flag_emergency_stop)
+ {
+ next_state = ESC_DISABLED;
+ }
+ break;
+ default:
+ break;
+ }
+
+ e_stateESC = next_state;
+ return;
+}
+
+void output_sm_esc()
+{
+ switch(e_stateESC) {
+ case ESC_DISABLED:
+ relay_ESC = 0;
+ break;
+ case ESC_INIT:
+ relay_ESC = 1;
+ wait(0.2);
+ pwm_ESC.period_ms(ESC_PERIOD_DURATION_MS); //20 ms is default
+ pwm_ESC.pulsewidth_us(600);
+ wait(1);
+ break;
+ case ESC_COMMAND:
+ pc.printf("send pulse 1500 to esc");
+ pwm_ESC.pulsewidth_us(1500);
+ wait(1);
+ pc.printf("send pulse 1600 to esc");
+ pwm_ESC.pulsewidth_us(1600);
+ wait(1);
+ pc.printf("send pulse 1700 to esc");
+ pwm_ESC.pulsewidth_us(1700);
+ wait(1);
+ pc.printf("send pulse 1800 to esc");
+ pwm_ESC.pulsewidth_us(1800);
+ wait(1);
+ pc.printf("send pulse 1900 to esc");
+ pwm_ESC.pulsewidth_us(1900);
+ wait(1);
+ pc.printf("send pulse 2000 to esc");
+ pwm_ESC.pulsewidth_us(2000);
+ wait(1);
+ pc.printf("emergency stop");
+ b_UTILS_flag_emergency_stop = true;
+ break;
+ default:
+ break;
+ }
+
+ return;
+}
\ No newline at end of file