mbed2 pre-final

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Committer:
domino5740
Date:
Mon Jun 15 17:31:23 2020 +0000
Revision:
4:a8494b656292
Parent:
3:404526e83702
final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
domino5740 1:be03cac9fe74 1 #include "servo.h"
domino5740 2:7dc265489818 2
domino5740 2:7dc265489818 3 Servo::Servo(void) {
domino5740 2:7dc265489818 4
domino5740 2:7dc265489818 5 Callib();
domino5740 2:7dc265489818 6
domino5740 1:be03cac9fe74 7 }
domino5740 1:be03cac9fe74 8
domino5740 2:7dc265489818 9 void Servo::GoTo(unsigned int uiPosition) {
domino5740 2:7dc265489818 10 uiDesiredPosition = uiPosition % 360;
domino5740 2:7dc265489818 11 eState = IN_PROGRESS;
domino5740 2:7dc265489818 12 while(eState != IDLE) {
domino5740 2:7dc265489818 13 Automat();
domino5740 2:7dc265489818 14 }
domino5740 1:be03cac9fe74 15 }
domino5740 1:be03cac9fe74 16
domino5740 2:7dc265489818 17 void Servo::Callib(void) {
domino5740 4:a8494b656292 18
domino5740 4:a8494b656292 19 MyServoGui.uiMarkerStartPos = 0;
domino5740 3:404526e83702 20 MyServoGui.uiMarkerPos = 0;
domino5740 4:a8494b656292 21 MyServoGui.ucLedPos = 0;
domino5740 4:a8494b656292 22
domino5740 2:7dc265489818 23 eState = CALLIB;
domino5740 2:7dc265489818 24 while(eState != IDLE) {
domino5740 2:7dc265489818 25 Automat();
domino5740 2:7dc265489818 26 }
domino5740 4:a8494b656292 27
domino5740 2:7dc265489818 28 MyServoGui.uiMarkerStartPos = MyServoGui.uiMarkerPos;
domino5740 2:7dc265489818 29 MyServoGui.uiMarkerPos = 0;
domino5740 4:a8494b656292 30 MyServoGui.ucLedPos = 0;
domino5740 2:7dc265489818 31 uiCurrentPosition = 0;
domino5740 2:7dc265489818 32 uiDesiredPosition = 0;
domino5740 1:be03cac9fe74 33 }
domino5740 1:be03cac9fe74 34
domino5740 2:7dc265489818 35 void Servo::Automat(void) {
domino5740 4:a8494b656292 36 wait(0.02);
domino5740 2:7dc265489818 37 switch(eState) {
domino5740 1:be03cac9fe74 38 case IN_PROGRESS:
domino5740 1:be03cac9fe74 39 if(uiCurrentPosition < uiDesiredPosition) {
domino5740 2:7dc265489818 40 MyServoGui.LedStepRight();
domino5740 2:7dc265489818 41 eState = IN_PROGRESS;
domino5740 1:be03cac9fe74 42 }
domino5740 1:be03cac9fe74 43 else if(uiCurrentPosition > uiDesiredPosition){
domino5740 2:7dc265489818 44 MyServoGui.LedStepLeft();
domino5740 2:7dc265489818 45 eState = IN_PROGRESS;
domino5740 1:be03cac9fe74 46 }
domino5740 1:be03cac9fe74 47 else {
domino5740 1:be03cac9fe74 48 eState = IDLE;
domino5740 1:be03cac9fe74 49 }
domino5740 1:be03cac9fe74 50 break;
domino5740 1:be03cac9fe74 51 case IDLE:
domino5740 1:be03cac9fe74 52 if (uiCurrentPosition != uiDesiredPosition) {
domino5740 1:be03cac9fe74 53 eState = IN_PROGRESS;
domino5740 1:be03cac9fe74 54 }
domino5740 2:7dc265489818 55 else {
domino5740 2:7dc265489818 56 eState = IDLE;
domino5740 2:7dc265489818 57 }
domino5740 1:be03cac9fe74 58 break;
domino5740 1:be03cac9fe74 59 case CALLIB:
domino5740 2:7dc265489818 60 if(MyServoGui.eReadDetector() == ACTIVE) {
domino5740 1:be03cac9fe74 61 eState = IDLE;
domino5740 1:be03cac9fe74 62 }
domino5740 1:be03cac9fe74 63 else {
domino5740 2:7dc265489818 64 MyServoGui.LedStepLeft();
domino5740 2:7dc265489818 65 eState = CALLIB;
domino5740 1:be03cac9fe74 66 }
domino5740 1:be03cac9fe74 67 break;
domino5740 1:be03cac9fe74 68 }
domino5740 3:404526e83702 69 uiCurrentPosition = MyServoGui.uiMarkerPos;
domino5740 4:a8494b656292 70 wait(0.02);
domino5740 1:be03cac9fe74 71 }