aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBen V. Brown <[email protected]>2017-07-10 19:31:48 +1000
committerBen V. Brown <[email protected]>2017-07-10 19:31:48 +1000
commita40ad665fecd346511f0d0da2c564767ddf85e49 (patch)
treedc51f3ff0bb5b3d2c6761839ef39b1b6d91a877d
parent54356d53a97ecb485cf8d234494b81318e740e30 (diff)
downloadIronOS-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.h4
-rw-r--r--workspace/ts100/src/MMA8652FC.c15
-rw-r--r--workspace/ts100/src/Modes.c25
-rw-r--r--workspace/ts100/src/Settings.c2
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