
mbed2 pre-final
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
servo.cpp@4:a8494b656292, 2020-06-15 (annotated)
- Committer:
- domino5740
- Date:
- Mon Jun 15 17:31:23 2020 +0000
- Revision:
- 4:a8494b656292
- Parent:
- 3:404526e83702
final
Who changed what in which revision?
User | Revision | Line number | New 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 | } |