TRR 2018 / Mbed 2 deprecated biniou-TRR2019-DLVV

Dependencies:   mbed MPU6050

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?

UserRevisionLine numberNew 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 }