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.
Dependencies: BSP_DISCO_F746NG Graphics mbed
HardwareAccess/Angle.cpp@0:8acbce46eede, 2016-11-06 (annotated)
- Committer:
- karpent
- Date:
- Sun Nov 06 02:14:34 2016 +0000
- Revision:
- 0:8acbce46eede
- Child:
- 1:4a5e329e617b
Initial revision with square 3D model.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| karpent | 0:8acbce46eede | 1 | // |
| karpent | 0:8acbce46eede | 2 | // Angle.cpp |
| karpent | 0:8acbce46eede | 3 | // |
| karpent | 0:8acbce46eede | 4 | |
| karpent | 0:8acbce46eede | 5 | #include "mbed.h" // for AnalogIn |
| karpent | 0:8acbce46eede | 6 | #include "Angle.h" |
| karpent | 0:8acbce46eede | 7 | |
| karpent | 0:8acbce46eede | 8 | #ifdef ARDUINO |
| karpent | 0:8acbce46eede | 9 | int anglePin = 0; |
| karpent | 0:8acbce46eede | 10 | #else |
| karpent | 0:8acbce46eede | 11 | AnalogIn angleRead(A0); |
| karpent | 0:8acbce46eede | 12 | #endif |
| karpent | 0:8acbce46eede | 13 | |
| karpent | 0:8acbce46eede | 14 | Angle::Angle() |
| karpent | 0:8acbce46eede | 15 | { |
| karpent | 0:8acbce46eede | 16 | angle = 0; |
| karpent | 0:8acbce46eede | 17 | direction = Left; |
| karpent | 0:8acbce46eede | 18 | delta = 1.0f; |
| karpent | 0:8acbce46eede | 19 | } |
| karpent | 0:8acbce46eede | 20 | |
| karpent | 0:8acbce46eede | 21 | float Angle::GetAngle() |
| karpent | 0:8acbce46eede | 22 | { |
| karpent | 0:8acbce46eede | 23 | if(direction == Left) { |
| karpent | 0:8acbce46eede | 24 | angle += delta; |
| karpent | 0:8acbce46eede | 25 | if(angle > FULL_ANGLE) { |
| karpent | 0:8acbce46eede | 26 | angle -= FULL_ANGLE; |
| karpent | 0:8acbce46eede | 27 | } |
| karpent | 0:8acbce46eede | 28 | } else { // Right |
| karpent | 0:8acbce46eede | 29 | angle -= delta; |
| karpent | 0:8acbce46eede | 30 | if(angle < 0) { |
| karpent | 0:8acbce46eede | 31 | angle += FULL_ANGLE; |
| karpent | 0:8acbce46eede | 32 | } |
| karpent | 0:8acbce46eede | 33 | } |
| karpent | 0:8acbce46eede | 34 | return angle; |
| karpent | 0:8acbce46eede | 35 | } |
| karpent | 0:8acbce46eede | 36 | |
| karpent | 0:8acbce46eede | 37 | /// Read the rotation angle from a potentiometer attached to pin A0 |
| karpent | 0:8acbce46eede | 38 | float Angle::ReadAngle() |
| karpent | 0:8acbce46eede | 39 | { |
| karpent | 0:8acbce46eede | 40 | #ifdef ARDUINO |
| karpent | 0:8acbce46eede | 41 | angle = analogRead(anglePin); |
| karpent | 0:8acbce46eede | 42 | #else |
| karpent | 0:8acbce46eede | 43 | angle = angleRead; |
| karpent | 0:8acbce46eede | 44 | #endif |
| karpent | 0:8acbce46eede | 45 | |
| karpent | 0:8acbce46eede | 46 | return angle/1024.f * FULL_ANGLE; |
| karpent | 0:8acbce46eede | 47 | } |