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_servo.cpp
- Revision:
- 3:1b7eb426247e
- Parent:
- 2:e9d928fd327a
- Child:
- 4:efa207509f63
--- a/sm_servo.cpp Sat Sep 28 22:58:02 2019 +0000
+++ b/sm_servo.cpp Sun Sep 29 00:43:58 2019 +0000
@@ -2,29 +2,28 @@
PwmOut pwm_Servo(PE_9);
E_STATE_SERVO e_stateServo;
-
+bool directionCheck = false;
void init_sm_servo()
{
- pc.printf("init servo with pulse %d us",SERVO_PULSE_MIDDLE_US);
- pwm_Servo.period_ms(SERVO_PERIOD_DURATION_MS);
- pwm_Servo.pulsewidth_us(SERVO_PULSE_MIDDLE_US);
e_stateServo = SERVO_INIT;
}
void update_sm_servo()
{
- E_STATE_SERVO next_state;
+ E_STATE_SERVO next_state = e_stateServo;
switch(e_stateServo) {
case SERVO_INIT:
- next_state = SERVO_COMMAND;
+ if(directionCheck) {
+ next_state = SERVO_COMMAND;
+ }
break;
case SERVO_COMMAND:
break;
default:
- break;
- }
+ break;
+ }
e_stateServo = next_state;
return;
@@ -32,5 +31,28 @@
void output_sm_servo()
{
-return;
+ switch(e_stateServo) {
+ case SERVO_INIT:
+ wait(1);
+ pc.printf("init servo with pulse %d us\n",SERVO_PULSE_MIDDLE_US);
+ pwm_Servo.period_ms(SERVO_PERIOD_DURATION_MS);
+ pwm_Servo.pulsewidth_us(SERVO_PULSE_MIDDLE_US);
+ wait(1);
+ pc.printf("send pulse 1600 to servo\n");
+ pwm_Servo.pulsewidth_us(1600);
+ wait(1);
+ pc.printf("send pulse 1300 to servo\n");
+ pwm_Servo.pulsewidth_us(1300);
+ wait(1);
+ pc.printf("send pulse 1500 to servo\n");
+ pwm_Servo.pulsewidth_us(1500);
+ wait(1);
+ directionCheck = true;
+ break;
+ case SERVO_COMMAND:
+ break;
+ default:
+ break;
+ }
+ return;
}
\ No newline at end of file