Playing around with accelerometer and magnetometer on mbed KL46Z
Dependencies: MAG3110 MMA8451Q PinDetect mbed TSI
Revision 12:d9d577c25961, committed 2014-02-07
- Comitter:
- oliverfang
- Date:
- Fri Feb 07 09:46:25 2014 +0000
- Parent:
- 11:7af59a3d9ac5
- Child:
- 13:921cb2856808
- Child:
- 15:90d4b8ddc586
- Commit message:
- added enable and disable functionality; small bug fixes
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Feb 06 21:35:02 2014 +0000 +++ b/main.cpp Fri Feb 07 09:46:25 2014 +0000 @@ -35,6 +35,12 @@ float lightRate = 0.1; float touchRate = 0.1; +// Enables +int accEn = 1; +int magEn = 1; +int lightEn = 1; +int touchEn = 1; + // Receiving Data const int bufferSize = 255; char buffer[bufferSize]; @@ -97,10 +103,10 @@ void printData() { - - pc.printf("/%f/%f/%f/%d/%d/%d/%f/%f/%f/%f/%f/%f/%d/\r\n", + pc.printf("/%f/%f/%f/%d/%d/%d/%f/%f/%.3f/%.3f/%.3f/%.3f/%d/%d/%d/%d/\r\n", xAcc, yAcc, zAcc, xMag, yMag, zMag, xLight, xTouch, - accRate, magRate, lightRate, touchRate, received); + accRate, magRate, lightRate, touchRate, + accEn, magEn, lightEn, touchEn); } @@ -137,14 +143,69 @@ //pc.printf("%s\r\n", buffer); char* cmd_index; char* cmd_val; + char* disStr = "ddd"; + char* enStr = "eee"; // read in first value (0, 1, 2, or 3) cmd_index = strtok(buffer, "x"); //pc.printf("%s\r\n", cmd_index); //read in second value (integer larger than 050) cmd_val = strtok(NULL, "x"); //pc.printf("%s\r\n", cmd_val); + // ddd means disable + if (strcmp(cmd_val, disStr) == 0) + { + ledgreen = 1; + switch(*cmd_index) + { + case '1': + timerAcc.detach(); + accEn = 0; + break; + case '2': + timerMag.detach(); + magEn = 0; + break; + case '3': + timerLight.detach(); + lightEn = 0; + break; + case '4': + timerTouch.detach(); + touchEn = 0; + break; + default: + //pc.printf("incorrect input\r\n"); + break; + } + } + // eee means enable + else if (strcmp(cmd_val, enStr) == 0) + { + switch(*cmd_index) + { + case '1': + timerAcc.attach(&accTime, accRate); + accEn = 1; + break; + case '2': + timerMag.attach(&magTime, magRate); + magEn = 1; + break; + case '3': + timerLight.attach(&lightTime, lightRate); + lightEn = 1; + break; + case '4': + timerTouch.attach(&touchTime, touchRate); + touchEn = 1; + break; + default: + //pc.printf("incorrect input\r\n"); + break; + } + } temp = strtod(cmd_val, NULL)/1000; - if (temp >= 0.05 && strlen(cmd_val) >= 3) + if (temp > 0.06 && strlen(cmd_val) >= 3) { switch(*cmd_index) {