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:
- 3:1b7eb426247e
- Parent:
- 2:e9d928fd327a
- Child:
- 4:efa207509f63
--- a/sm_esc.cpp Sat Sep 28 22:58:02 2019 +0000
+++ b/sm_esc.cpp Sun Sep 29 00:43:58 2019 +0000
@@ -12,11 +12,11 @@
void update_sm_esc()
{
- E_STATE_ESC next_state;
+ E_STATE_ESC next_state = e_stateESC;
switch(e_stateESC) {
case ESC_DISABLED:
- if(b_UTILS_flag_button) {
+ if(b_UTILS_flag_button && !b_UTILS_flag_emergency_stop) {
next_state = ESC_INIT;
b_UTILS_flag_button = false;
}
@@ -42,36 +42,54 @@
{
switch(e_stateESC) {
case ESC_DISABLED:
- relay_ESC = 0;
+ if(b_UTILS_flag_emergency_stop){
+ relay_ESC = 1;
+ wait(0.5);
+ relay_ESC = 0;
+ }
break;
case ESC_INIT:
- pc.printf("init the ESC");
+ pc.printf("init the ESC\n");
+ pwm_ESC.period_ms(ESC_PERIOD_DURATION_MS); //20 ms is default
+ pwm_ESC.pulsewidth_us(0);
+
relay_ESC = 1;
- wait(0.2);
- pwm_ESC.period_ms(ESC_PERIOD_DURATION_MS); //20 ms is default
- pwm_ESC.pulsewidth_us(600);
+ wait(0.5);
+ relay_ESC = 0;
+ wait(0.1);
+
+ pwm_ESC.pulsewidth_us(ESC_PULSE_MIN_US);
+ wait(3);
+ pwm_ESC.pulsewidth_us(ESC_PULSE_MAX_US);
+ wait(1);
+ pwm_ESC.pulsewidth_us(ESC_PULSE_IDLE_US);
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");
+ pc.printf("send pulse 1600 to esc\n");
pwm_ESC.pulsewidth_us(1600);
wait(1);
- pc.printf("send pulse 1700 to esc");
+ pc.printf("send pulse 1700 to esc\n");
pwm_ESC.pulsewidth_us(1700);
wait(1);
- pc.printf("send pulse 1800 to esc");
- pwm_ESC.pulsewidth_us(1800);
+
+ pc.printf("send pulse 1300 to esc\n");
+ pwm_ESC.pulsewidth_us(1300);
+ wait(3);
+
+ pc.printf("send pulse 1600 to esc\n");
+ pwm_ESC.pulsewidth_us(1600);
wait(1);
- pc.printf("send pulse 1900 to esc");
- pwm_ESC.pulsewidth_us(1900);
+ pc.printf("send pulse 1700 to esc\n");
+ pwm_ESC.pulsewidth_us(1700);
wait(1);
- pc.printf("send pulse 2000 to esc");
- pwm_ESC.pulsewidth_us(2000);
+
+ pc.printf("send pulse 1500 to esc\n");
+ pwm_ESC.pulsewidth_us(1500);
wait(1);
- pc.printf("emergency stop");
+
+ pc.printf("emergency stop\n");
b_UTILS_flag_emergency_stop = true;
break;
default: