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.
encoders.cpp@0:7a97ebb833eb, 2019-05-05 (annotated)
- Committer:
- rzalog
- Date:
- Sun May 05 00:02:11 2019 +0000
- Revision:
- 0:7a97ebb833eb
test commit;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rzalog | 0:7a97ebb833eb | 1 | #include "encoders.h" |
| rzalog | 0:7a97ebb833eb | 2 | #include "pins.h" |
| rzalog | 0:7a97ebb833eb | 3 | #include "globals.h" |
| rzalog | 0:7a97ebb833eb | 4 | #include "mbed.h" |
| rzalog | 0:7a97ebb833eb | 5 | #include "QEI.h" |
| rzalog | 0:7a97ebb833eb | 6 | |
| rzalog | 0:7a97ebb833eb | 7 | /*** |
| rzalog | 0:7a97ebb833eb | 8 | * Assignment 2 |
| rzalog | 0:7a97ebb833eb | 9 | * |
| rzalog | 0:7a97ebb833eb | 10 | * Import the QEI in order to have functioning encoders. |
| rzalog | 0:7a97ebb833eb | 11 | ***/ |
| rzalog | 0:7a97ebb833eb | 12 | QEI wheel_R(ENC_RB, ENC_RF, NC, 624, QEI::X4_ENCODING); |
| rzalog | 0:7a97ebb833eb | 13 | QEI wheel_L(ENC_LF, ENC_LB, NC, 624, QEI::X4_ENCODING); |
| rzalog | 0:7a97ebb833eb | 14 | |
| rzalog | 0:7a97ebb833eb | 15 | /////// |
| rzalog | 0:7a97ebb833eb | 16 | // Encoder class implementation |
| rzalog | 0:7a97ebb833eb | 17 | /////// |
| rzalog | 0:7a97ebb833eb | 18 | |
| rzalog | 0:7a97ebb833eb | 19 | Encoder::Encoder() { |
| rzalog | 0:7a97ebb833eb | 20 | reset(); |
| rzalog | 0:7a97ebb833eb | 21 | } |
| rzalog | 0:7a97ebb833eb | 22 | |
| rzalog | 0:7a97ebb833eb | 23 | void Encoder::reset() volatile { |
| rzalog | 0:7a97ebb833eb | 24 | m_countR = 0; |
| rzalog | 0:7a97ebb833eb | 25 | m_countL = 0; |
| rzalog | 0:7a97ebb833eb | 26 | wheel_R.reset(); |
| rzalog | 0:7a97ebb833eb | 27 | wheel_L.reset(); |
| rzalog | 0:7a97ebb833eb | 28 | } |
| rzalog | 0:7a97ebb833eb | 29 | |
| rzalog | 0:7a97ebb833eb | 30 | void Encoder::update() volatile { |
| rzalog | 0:7a97ebb833eb | 31 | m_countR = wheel_R.getPulses(); |
| rzalog | 0:7a97ebb833eb | 32 | m_countL = wheel_L.getPulses(); |
| rzalog | 0:7a97ebb833eb | 33 | } |
| rzalog | 0:7a97ebb833eb | 34 | |
| rzalog | 0:7a97ebb833eb | 35 | int Encoder::right() volatile { |
| rzalog | 0:7a97ebb833eb | 36 | return wheel_R.getPulses(); |
| rzalog | 0:7a97ebb833eb | 37 | } |
| rzalog | 0:7a97ebb833eb | 38 | |
| rzalog | 0:7a97ebb833eb | 39 | int Encoder::left() volatile { |
| rzalog | 0:7a97ebb833eb | 40 | return wheel_L.getPulses(); |
| rzalog | 0:7a97ebb833eb | 41 | } |
| rzalog | 0:7a97ebb833eb | 42 | |
| rzalog | 0:7a97ebb833eb | 43 | void Encoder::printValues() volatile { |
| rzalog | 0:7a97ebb833eb | 44 | // Serial pc(TX, RX); |
| rzalog | 0:7a97ebb833eb | 45 | pc.printf("R: %d\tL: %d\n", right(), left()); |
| rzalog | 0:7a97ebb833eb | 46 | } |