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.
Fork of ADXL345Test_for_motortest by
Revision 7:592373200317, committed 2017-09-01
- Comitter:
- Frederick_H
- Date:
- Fri Sep 01 10:53:50 2017 +0000
- Parent:
- 6:88787a48e96e
- Commit message:
- Add zoom and shift function on Mapper
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Sep 01 10:10:46 2017 +0000
+++ b/main.cpp Fri Sep 01 10:53:50 2017 +0000
@@ -12,15 +12,22 @@
protected:
double _ratio;
double _offset;
+ double _outrange;
public:
RangeMapper(double x_min, double x_max, double y_min, double y_max)
{
_ratio = (y_max - y_min) / (x_max - x_min);
- _offset = y_min - x_min * _ratio;
+ _offset = y_min - x_min * _ratio;
+ _outrange = y_max - y_min;
};
~RangeMapper(){};
double getOutput(double x_input)
{return x_input * _ratio + _offset;};
+ void zoom(float ratio)
+ {_ratio *= ratio;};
+ void shift(float ratio)
+ {_offset += _outrange * ratio ; } ;
+
};
@@ -80,7 +87,6 @@
bool output = true, mapout = true;
pc.baud(115200);
int readings[3] = {0, 0, 0};
- RangeMapper DAC_Mapper( 0 - 1<<13, 1<<13, 0, 1);
DataProcess dp1, dp2, dp3;
DataProcess dp[3] = {dp1, dp2, dp3};
@@ -135,6 +141,10 @@
pc.printf(" g -> 3rd order Integration \r\n");
pc.printf(" h -> 1st order Differentiation \r\n");
pc.printf(" k -> 2nd order Differentiation \r\n");
+ pc.printf(" + -> Output Zoom In 2X \r\n");
+ pc.printf(" - -> Output Zoom Out 2Z \r\n");
+ pc.printf(" ^ -> shift up 1% \r\n");
+ pc.printf(" v -> shift down 1% \r\n");
pc.printf("Press any key to start. \r\n");
getc = pc.getc();
@@ -142,6 +152,8 @@
while (1) {
int error_count=0;
+ RangeMapper DAC_Mapper1( 0 - 1<<13, 1<<13, 0, 1);
+ RangeMapper DAC_Mapper2( 0 - 1<<13, 1<<13, 0, 1);
if (pc.readable())
{
getc = pc.getc();
@@ -163,6 +175,10 @@
case 'g' : datamode = 6 ; pc.printf("Set to 3rd order Integration output.\r\n"); break;
case 'h' : datamode = 7 ; pc.printf("Set to 1st order Differentiation output.\r\n"); break;
case 'k' : datamode = 8 ; pc.printf("Set to 2nd order Differentiation output.\r\n"); break;
+ case '+' : DAC_Mapper2.zoom(2) ; pc.printf("Mapout zoom in.\r\n"); break;
+ case '-' : DAC_Mapper2.zoom(0.5) ; pc.printf("Mapout zoom out.\r\n"); break;
+ case '^' : DAC_Mapper2.shift(0.01) ; pc.printf("Mapout zoom out.\r\n"); break;
+ case 'v' : DAC_Mapper2.shift(-0.01) ; pc.printf("Mapout zoom out.\r\n"); break;
default: break;
}
}
@@ -201,7 +217,9 @@
default: break;
}
}
- if (mapout)
+ // Set data the DAC
+ DAC_Mapper1.getOutput(readings[channel]);
+ if (mapout)
{
double mapdata;
switch (datamode)
@@ -217,9 +235,14 @@
case 8: mapdata = dp[channel].GetO2differ(); break;
default: mapdata = 0; break;
}
- // Set data the DAC
- DAC_Mapper.getOutput(mapdata);
+ pc.printf("MAPPING OUTPUT: %jd\r\n", DAC_Mapper2.getOutput(mapdata) );
+
}
+ else
+ {
+ DAC_Mapper2.getOutput(0);
+ }
+
wait(1);
}
