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.
sm_servo.cpp@3:1b7eb426247e, 2019-09-29 (annotated)
- Committer:
- GaspardD
- Date:
- Sun Sep 29 00:43:58 2019 +0000
- Revision:
- 3:1b7eb426247e
- Parent:
- 2:e9d928fd327a
- Child:
- 4:efa207509f63
init esc nouveau chassis ok
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GaspardD | 2:e9d928fd327a | 1 | #include "sm_servo.h" |
GaspardD | 2:e9d928fd327a | 2 | |
GaspardD | 2:e9d928fd327a | 3 | PwmOut pwm_Servo(PE_9); |
GaspardD | 2:e9d928fd327a | 4 | E_STATE_SERVO e_stateServo; |
GaspardD | 3:1b7eb426247e | 5 | bool directionCheck = false; |
GaspardD | 2:e9d928fd327a | 6 | |
GaspardD | 2:e9d928fd327a | 7 | void init_sm_servo() |
GaspardD | 2:e9d928fd327a | 8 | { |
GaspardD | 2:e9d928fd327a | 9 | e_stateServo = SERVO_INIT; |
GaspardD | 2:e9d928fd327a | 10 | } |
GaspardD | 2:e9d928fd327a | 11 | |
GaspardD | 2:e9d928fd327a | 12 | void update_sm_servo() |
GaspardD | 2:e9d928fd327a | 13 | { |
GaspardD | 3:1b7eb426247e | 14 | E_STATE_SERVO next_state = e_stateServo; |
GaspardD | 2:e9d928fd327a | 15 | |
GaspardD | 2:e9d928fd327a | 16 | switch(e_stateServo) { |
GaspardD | 2:e9d928fd327a | 17 | case SERVO_INIT: |
GaspardD | 3:1b7eb426247e | 18 | if(directionCheck) { |
GaspardD | 3:1b7eb426247e | 19 | next_state = SERVO_COMMAND; |
GaspardD | 3:1b7eb426247e | 20 | } |
GaspardD | 2:e9d928fd327a | 21 | break; |
GaspardD | 2:e9d928fd327a | 22 | case SERVO_COMMAND: |
GaspardD | 2:e9d928fd327a | 23 | break; |
GaspardD | 2:e9d928fd327a | 24 | default: |
GaspardD | 3:1b7eb426247e | 25 | break; |
GaspardD | 3:1b7eb426247e | 26 | } |
GaspardD | 2:e9d928fd327a | 27 | |
GaspardD | 2:e9d928fd327a | 28 | e_stateServo = next_state; |
GaspardD | 2:e9d928fd327a | 29 | return; |
GaspardD | 2:e9d928fd327a | 30 | } |
GaspardD | 2:e9d928fd327a | 31 | |
GaspardD | 2:e9d928fd327a | 32 | void output_sm_servo() |
GaspardD | 2:e9d928fd327a | 33 | { |
GaspardD | 3:1b7eb426247e | 34 | switch(e_stateServo) { |
GaspardD | 3:1b7eb426247e | 35 | case SERVO_INIT: |
GaspardD | 3:1b7eb426247e | 36 | wait(1); |
GaspardD | 3:1b7eb426247e | 37 | pc.printf("init servo with pulse %d us\n",SERVO_PULSE_MIDDLE_US); |
GaspardD | 3:1b7eb426247e | 38 | pwm_Servo.period_ms(SERVO_PERIOD_DURATION_MS); |
GaspardD | 3:1b7eb426247e | 39 | pwm_Servo.pulsewidth_us(SERVO_PULSE_MIDDLE_US); |
GaspardD | 3:1b7eb426247e | 40 | wait(1); |
GaspardD | 3:1b7eb426247e | 41 | pc.printf("send pulse 1600 to servo\n"); |
GaspardD | 3:1b7eb426247e | 42 | pwm_Servo.pulsewidth_us(1600); |
GaspardD | 3:1b7eb426247e | 43 | wait(1); |
GaspardD | 3:1b7eb426247e | 44 | pc.printf("send pulse 1300 to servo\n"); |
GaspardD | 3:1b7eb426247e | 45 | pwm_Servo.pulsewidth_us(1300); |
GaspardD | 3:1b7eb426247e | 46 | wait(1); |
GaspardD | 3:1b7eb426247e | 47 | pc.printf("send pulse 1500 to servo\n"); |
GaspardD | 3:1b7eb426247e | 48 | pwm_Servo.pulsewidth_us(1500); |
GaspardD | 3:1b7eb426247e | 49 | wait(1); |
GaspardD | 3:1b7eb426247e | 50 | directionCheck = true; |
GaspardD | 3:1b7eb426247e | 51 | break; |
GaspardD | 3:1b7eb426247e | 52 | case SERVO_COMMAND: |
GaspardD | 3:1b7eb426247e | 53 | break; |
GaspardD | 3:1b7eb426247e | 54 | default: |
GaspardD | 3:1b7eb426247e | 55 | break; |
GaspardD | 3:1b7eb426247e | 56 | } |
GaspardD | 3:1b7eb426247e | 57 | return; |
GaspardD | 2:e9d928fd327a | 58 | } |