Generates reference based on analog input
Dependents: locomotion_pid_action_refactor_EMG
refGen.cpp@2:35c05e7698f5, 2017-10-20 (annotated)
- Committer:
- tvlogman
- Date:
- Fri Oct 20 12:23:03 2017 +0000
- Revision:
- 2:35c05e7698f5
- Parent:
- 0:5c67195a412d
- Child:
- 3:43d9f8db93b7
Made maxAngle and r_direction members of refGen;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tvlogman | 0:5c67195a412d | 1 | #include "refGen.h" |
tvlogman | 0:5c67195a412d | 2 | #include "mbed.h" |
tvlogman | 0:5c67195a412d | 3 | |
tvlogman | 0:5c67195a412d | 4 | // Member function definitions |
tvlogman | 2:35c05e7698f5 | 5 | refGen::refGen(PinName a, float maxAngle):refPin(a), maxAngle(maxAngle), r_direction(false){ |
tvlogman | 0:5c67195a412d | 6 | |
tvlogman | 0:5c67195a412d | 7 | } |
tvlogman | 0:5c67195a412d | 8 | |
tvlogman | 0:5c67195a412d | 9 | float refGen :: getReferencePosition(float maxAngle, bool r_direction){ |
tvlogman | 0:5c67195a412d | 10 | float r; |
tvlogman | 0:5c67195a412d | 11 | if(r_direction == false){ |
tvlogman | 0:5c67195a412d | 12 | // Clockwise rotation yields positive reference |
tvlogman | 2:35c05e7698f5 | 13 | r = maxAngle*frefPin.read(); |
tvlogman | 0:5c67195a412d | 14 | } |
tvlogman | 0:5c67195a412d | 15 | if(r_direction == true){ |
tvlogman | 0:5c67195a412d | 16 | // Counterclockwise rotation yields negative reference |
tvlogman | 0:5c67195a412d | 17 | r = -1*maxAngle*refPin.read(); |
tvlogman | 0:5c67195a412d | 18 | } |
tvlogman | 0:5c67195a412d | 19 | return r; |
tvlogman | 0:5c67195a412d | 20 | } |