Frederick Huang
/
ADXL345Test
ADXL345 Evaluation
Revision 6:592373200317, committed 2017-09-01
- Comitter:
- Frederick_H
- Date:
- Fri Sep 01 10:53:50 2017 +0000
- Parent:
- 5: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); }