There are currently 0 users and 4 guests online.
C++ Library for $50 robot Version 2
Submitted by Webbot on January 1, 2009 - 10:52pm.
delay_cycles(volatile unsigned int cycles) is the same as the delay loop from the original $50 tutorial in that it just pauses for a given delay.
int interpolate(int value, int minVal, int maxVal, int minRtn, int maxRtn) is a useful routine. This takes a 'value' that is known to be between 'minVal' and 'maxVal' and then returns a number in the range 'minRtn' and 'maxRtn'. So if you wanted to convert a number which is in the range 0 to 100 into a matching number in the range -255 to 255 you could just do:
int answer = interpolate(value, 0, 100, -255, 255);
int clamp(int value, int minVal. int maxVal); Will limit a value to the range minVal to maxVal. This is the same as writing:
if(value < minVal) value = minVal;
if(value > maxVal) value = maxVal;
The macros 'CRITICAL_SECTION_START' and 'CRITICAL_SECTION_END' can be used to surround a piece of time critical code. Since it disables interrupts then it shouldn't be used if the surrounded code takes a long time to run as you may loose some other critical interrupts.