diff options
author | Ben V. Brown <[email protected]> | 2017-07-10 19:31:48 +1000 |
---|---|---|
committer | Ben V. Brown <[email protected]> | 2017-07-10 19:31:48 +1000 |
commit | a40ad665fecd346511f0d0da2c564767ddf85e49 (patch) | |
tree | dc51f3ff0bb5b3d2c6761839ef39b1b6d91a877d | |
parent | 54356d53a97ecb485cf8d234494b81318e740e30 (diff) | |
download | IronOS-a40ad665fecd346511f0d0da2c564767ddf85e49.tar.gz IronOS-a40ad665fecd346511f0d0da2c564767ddf85e49.zip |
Bugfix sensitivity options typo + add more options
Changes sensitivity scale to be more precise.
Fixes #17
-rw-r--r-- | workspace/ts100/inc/Settings.h | 4 | ||||
-rw-r--r-- | workspace/ts100/src/MMA8652FC.c | 15 | ||||
-rw-r--r-- | workspace/ts100/src/Modes.c | 25 | ||||
-rw-r--r-- | workspace/ts100/src/Settings.c | 2 |
4 files changed, 11 insertions, 35 deletions
diff --git a/workspace/ts100/inc/Settings.h b/workspace/ts100/inc/Settings.h index d8739687..dbc614f1 100644 --- a/workspace/ts100/inc/Settings.h +++ b/workspace/ts100/inc/Settings.h @@ -11,7 +11,7 @@ #define SETTINGS_H_ #include <stdint.h> #include "stm32f10x_flash.h" -#define SETTINGSVERSION 10 /*Change this if you change the struct below to prevent people getting out of sync*/ +#define SETTINGSVERSION 11 /*Change this if you change the struct below to prevent people getting out of sync*/ //Motion Sensitivity #define MOTION_HIGH (0x00) #define MOTION_MED (0x01) @@ -37,7 +37,7 @@ struct { uint8_t movementEnabled:1; //If movement is enabled uint8_t displayTempInF:1; //If we need to convert the C reading to F uint8_t flipDisplay:1; //If true we want to invert the display for lefties - uint8_t sensitivity:5; //Sensitivity of accelerometer + uint8_t sensitivity:5; //Sensitivity of accelerometer (4 bits) uint8_t ShutdownTime:6; //Time until unit shuts down if left alone uint8_t displayUpdateSpeed:2; //How fast the display updates / temp showing mode uint8_t temperatureRounding:2; //Rounding mode for the temperature diff --git a/workspace/ts100/src/MMA8652FC.c b/workspace/ts100/src/MMA8652FC.c index 43876421..df73a53c 100644 --- a/workspace/ts100/src/MMA8652FC.c +++ b/workspace/ts100/src/MMA8652FC.c @@ -34,19 +34,8 @@ void StartUp_Accelerometer(uint8_t sensitivity) { I2C_RegisterWrite( CTRL_REG2, 0x40); // Reset all registers to POR values
delayMs(2); // ~1ms delay
I2C_RegisterWrite(FF_MT_CFG_REG, 0x78); // Enable motion detection for X and Y axis, latch enabled
- uint8_t sens =0x0F;
- switch(sensitivity)
- {
- case 0:
- sens=0x1A;
- break;
- case 1:
- sens=0x20;
- break;
- case 2:
- sens=0x2A;
- break;
- }
+ uint8_t sens = 0x3F;
+ sens -= 0x08 * sensitivity;
I2C_RegisterWrite(FF_MT_THS_REG, sens); // Set threshold
I2C_RegisterWrite(FF_MT_COUNT_REG, 0x01); // Set debounce to 100ms
diff --git a/workspace/ts100/src/Modes.c b/workspace/ts100/src/Modes.c index 75ae15f1..55e43d6a 100644 --- a/workspace/ts100/src/Modes.c +++ b/workspace/ts100/src/Modes.c @@ -8,13 +8,13 @@ const char *SettingsLongNames[] = { " Undervoltage Cutout <V>", " Sleep Temperature <C>", " Sleep Timeout <Minutes>", " Shutdown Timeout <Minutes>", " Motion Detection", - " Motion Sensitivity", " Temperature Unit", - " Temperature Rounding Amount", + " Motion Sensitivity <1.least sensitive 8.most sensitive>", + " Temperature Unit", " Temperature Rounding Amount", " Temperature Display Update Rate", " Flip Display for Left Hand", " Enable front key boost 450C mode when soldering", " Temperature when in boost mode" }; -const uint8_t SettingsLongNamesLengths[] = { 29, 27, 29, 32, 22, 24, 22, 33, 37, +const uint8_t SettingsLongNamesLengths[] = { 29, 27, 29, 32, 22, 61, 22, 33, 37, 32, 53, 36 }; uint8_t StatusFlags = 0; uint32_t temporaryTempStorage = 0; @@ -177,7 +177,7 @@ void ProcessUI() { break; case MOTIONSENSITIVITY: systemSettings.sensitivity++; - systemSettings.sensitivity = systemSettings.sensitivity % 3; + systemSettings.sensitivity = systemSettings.sensitivity % 8; break; case TEMPROUNDING: @@ -503,21 +503,8 @@ void DrawUI() { OLED_DrawString("FLPDSP F", 8); break; case MOTIONSENSITIVITY: - switch (systemSettings.sensitivity) { - case MOTION_HIGH: - OLED_DrawString("SENSE H ", 8); - break; - case MOTION_MED: - OLED_DrawString("SENSE M ", 8); - break; - case MOTION_LOW: - OLED_DrawString("SENSE L ", 8); - break; - default: - OLED_DrawString("SENSE ", 8); - break; - } - + OLED_DrawString("MSENSE ", 7); + OLED_DrawChar('1' + systemSettings.sensitivity, 7); break; case TEMPROUNDING: //We are prompting the user about their display mode preferences diff --git a/workspace/ts100/src/Settings.c b/workspace/ts100/src/Settings.c index 0526123d..c115e066 100644 --- a/workspace/ts100/src/Settings.c +++ b/workspace/ts100/src/Settings.c @@ -49,7 +49,7 @@ void resetSettings() { systemSettings.version = SETTINGSVERSION; //Store the version number to allow for easier upgrades systemSettings.displayTempInF =0; //default to C systemSettings.flipDisplay=0; //Default to right handed mode - systemSettings.sensitivity=0x00; //Default high sensitivity + systemSettings.sensitivity=5; //Default high sensitivity systemSettings.tempCalibration=239; //Default to their calibration value systemSettings.voltageDiv=144; //Default divider from schematic systemSettings.ShutdownTime=30; //How many minutes until the unit turns itself off |