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.
YellowMotors.cpp@2:6f6e591f1838, 2016-02-04 (annotated)
- Committer:
- amateusz
- Date:
- Thu Feb 04 02:50:06 2016 +0000
- Revision:
- 2:6f6e591f1838
- Parent:
- 0:85e85976c650
- Child:
- 3:c656543830df
So moved it to a class, and sub-class for motors, but something doesn't work.. like it is calling constructor without given argument.. strange. Got to come up with a workaround
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amateusz | 0:85e85976c650 | 1 | #include <math.h> |
amateusz | 2:6f6e591f1838 | 2 | #include "YellowMotors.h" |
amateusz | 2:6f6e591f1838 | 3 | #include "mbed.h" |
amateusz | 2:6f6e591f1838 | 4 | |
amateusz | 0:85e85976c650 | 5 | |
amateusz | 0:85e85976c650 | 6 | float motorLinearizationL(float desired) |
amateusz | 0:85e85976c650 | 7 | { |
amateusz | 2:6f6e591f1838 | 8 | return (float)((6.6691*(exp(0.0249053*(desired*100))+2.92508))/100.0); |
amateusz | 2:6f6e591f1838 | 9 | }; |
amateusz | 0:85e85976c650 | 10 | |
amateusz | 0:85e85976c650 | 11 | float motorLinearizationR(float desired) |
amateusz | 0:85e85976c650 | 12 | { |
amateusz | 2:6f6e591f1838 | 13 | return (float)(4.096509*(exp(0.0286952296*(desired*100))+5.073644964)/100.0); // \/ history of trial and error |
amateusz | 0:85e85976c650 | 14 | //return 5.9693939*(exp(0.0251906*(desired*100))+3.162519)/100.0; // that wasn't that bad at all! to early start, the rest ok |
amateusz | 0:85e85976c650 | 15 | //return (3.45183*(exp(0.0292461*(desired*100))+5.51727))/100.0; |
amateusz | 2:6f6e591f1838 | 16 | }; |
amateusz | 2:6f6e591f1838 | 17 | |
amateusz | 2:6f6e591f1838 | 18 | YellowMotors::YellowMotors(PinName clk, PinName lat, PinName dat, PinName ena, PinName Lpwm, PinName Rpwm) : _clk(clk), _lat(lat), _dat(dat), _ena(ena)//, _Lpwm(Lpwm), _Rpwm(Rpwm) |
amateusz | 2:6f6e591f1838 | 19 | { |
amateusz | 2:6f6e591f1838 | 20 | //PwmOut _Lpwm(D11); |
amateusz | 2:6f6e591f1838 | 21 | //PwmOut _Rpwm(D3); |
amateusz | 2:6f6e591f1838 | 22 | //DigitalOut _dat(dat); |
amateusz | 2:6f6e591f1838 | 23 | //DigitalOut _clk(clk); |
amateusz | 2:6f6e591f1838 | 24 | //DigitalOut _lat(lat); |
amateusz | 2:6f6e591f1838 | 25 | |
amateusz | 2:6f6e591f1838 | 26 | // and create motor objects |
amateusz | 2:6f6e591f1838 | 27 | _ena.write(0); |
amateusz | 2:6f6e591f1838 | 28 | //pc.printf("konstruktor yellow. Lpwm: %d\n\r", Lpwm); |
amateusz | 2:6f6e591f1838 | 29 | //motorItself::motorItself L(D11);//Lpwm); |
amateusz | 2:6f6e591f1838 | 30 | //motorItself::motorItself R(D3);//Rpwm); |
amateusz | 2:6f6e591f1838 | 31 | } |
amateusz | 2:6f6e591f1838 | 32 | |
amateusz | 2:6f6e591f1838 | 33 | void YellowMotors::setDirections(char directions) |
amateusz | 2:6f6e591f1838 | 34 | { |
amateusz | 2:6f6e591f1838 | 35 | _directions = directions; |
amateusz | 2:6f6e591f1838 | 36 | _lat = 0; |
amateusz | 2:6f6e591f1838 | 37 | for (signed char i = 7; i >= 0; i--) { |
amateusz | 2:6f6e591f1838 | 38 | _clk = 0; |
amateusz | 2:6f6e591f1838 | 39 | _dat = (directions >> i) & 0x1; |
amateusz | 2:6f6e591f1838 | 40 | wait(0.00001); |
amateusz | 2:6f6e591f1838 | 41 | _clk = 1; |
amateusz | 2:6f6e591f1838 | 42 | } |
amateusz | 2:6f6e591f1838 | 43 | _lat = 1; |
amateusz | 2:6f6e591f1838 | 44 | _clk = 0; |
amateusz | 2:6f6e591f1838 | 45 | }; |
amateusz | 2:6f6e591f1838 | 46 |