1
0
forked from me/IronOS

Add autostart

Adds autostart option.
Only works on first power up, so if the settings wrong you can still easily change it 😄
Fixes #43
This commit is contained in:
Ben V. Brown
2017-08-06 22:21:57 +10:00
parent f1aa331168
commit 48040acbcc
7 changed files with 57 additions and 26 deletions

View File

@@ -36,9 +36,9 @@ typedef enum {
} operatingModeEnum; } operatingModeEnum;
//#define PIDTUNING //#define PIDTUNING
#ifdef PIDTUNING #ifdef PIDTUNING
#define SETTINGSOPTIONSCOUNT (11+3) /*Number of settings in the settings menu*/ #define SETTINGSOPTIONSCOUNT (12+3) /*Number of settings in the settings menu*/
#else #else
#define SETTINGSOPTIONSCOUNT (11) /*Number of settings in the settings menu*/ #define SETTINGSOPTIONSCOUNT (12) /*Number of settings in the settings menu*/
#endif #endif
typedef enum { typedef enum {
UVCO = 0, UVCO = 0,
@@ -53,13 +53,15 @@ typedef enum {
BOOSTMODE, BOOSTMODE,
BOOSTTEMP, BOOSTTEMP,
POWERDISPLAY, POWERDISPLAY,
AUTOSTART,
#ifdef PIDTUNING #ifdef PIDTUNING
PIDP, PIDP,
PIDI, PIDI,
PIDD, PIDD,
#endif #endif
} settingsPageEnum; } settingsPageEnum;
void ProcessUI(); void ProcessUI();
void DrawUI(); void DrawUI();
extern operatingModeEnum operatingMode;
#endif /* MODES_H_ */ #endif /* MODES_H_ */

View File

@@ -12,7 +12,7 @@
#include <stdint.h> #include <stdint.h>
#include "stm32f10x_flash.h" #include "stm32f10x_flash.h"
#include "Oled.h" #include "Oled.h"
#define SETTINGSVERSION 14 /*Change this if you change the struct below to prevent people getting out of sync*/ #define SETTINGSVERSION 15 /*Change this if you change the struct below to prevent people getting out of sync*/
//Display Speeds //Display Speeds
#define DISPLAYMODE_FAST (0x00) #define DISPLAYMODE_FAST (0x00)
#define DISPLAYMODE_MEDIUM (0x01) #define DISPLAYMODE_MEDIUM (0x01)
@@ -34,7 +34,8 @@ typedef struct {
uint8_t powerDisplay:1; //Toggle to swap the arrows with a power readout instead uint8_t powerDisplay:1; //Toggle to swap the arrows with a power readout instead
uint8_t displayTempInF:1; //If we need to convert the C reading to F uint8_t displayTempInF:1; //If we need to convert the C reading to F
uint8_t OrientationMode:2; //If true we want to invert the display for lefties uint8_t OrientationMode:2; //If true we want to invert the display for lefties
uint8_t sensitivity:6; //Sensitivity of accelerometer (5 bits) uint8_t sensitivity:5; //Sensitivity of accelerometer (5 bits)
uint8_t autoStart:1; //Should the unit automatically jump straight into soldering mode when power is applied
uint8_t ShutdownTime:6; //Time until unit shuts down if left alone 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 displayUpdateSpeed:2; //How fast the display updates / temp showing mode
uint8_t temperatureRounding:2; //Rounding mode for the temperature uint8_t temperatureRounding:2; //Rounding mode for the temperature

View File

@@ -12,7 +12,7 @@
#ifndef STRINGS_H_ #ifndef STRINGS_H_
#define STRINGS_H_ #define STRINGS_H_
extern const char* SettingsLongNames[12]; extern const char* SettingsLongNames[13];
extern const char* SettingsShortNames[12]; extern const char* SettingsShortNames[13];
#endif /* STRINGS_H_ */ #endif /* STRINGS_H_ */

View File

@@ -14,6 +14,8 @@ void setup();
int main(void) { int main(void) {
setup();/*Setup the system*/ setup();/*Setup the system*/
if(systemSettings.autoStart)
operatingMode = SOLDERING;
while (1) { while (1) {
Clear_Watchdog(); //reset the Watch dog timer Clear_Watchdog(); //reset the Watch dog timer
ProcessUI(); ProcessUI();

View File

@@ -215,6 +215,9 @@ void ProcessUI() {
case POWERDISPLAY: case POWERDISPLAY:
systemSettings.powerDisplay = !systemSettings.powerDisplay; systemSettings.powerDisplay = !systemSettings.powerDisplay;
break; break;
case AUTOSTART:
systemSettings.autoStart = !systemSettings.autoStart;
break;
#ifdef PIDTUNING #ifdef PIDTUNING
case PIDP: case PIDP:
pidSettings.kp++; pidSettings.kp++;
@@ -650,6 +653,17 @@ void DrawUI() {
break; break;
} }
break; break;
case AUTOSTART:
OLED_DrawString(SettingsShortNames[AUTOSTART], 7);
switch (systemSettings.autoStart) {
case 1:
OLED_DrawChar('T', 7);
break;
case 0:
OLED_DrawChar('F', 7);
break;
}
break;
#ifdef PIDTUNING #ifdef PIDTUNING
case PIDP: case PIDP:
OLED_DrawString("PIDP ", 5); OLED_DrawString("PIDP ", 5);

View File

@@ -65,7 +65,7 @@ void resetSettings() {
systemSettings.version = SETTINGSVERSION;//Store the version number to allow for easier upgrades systemSettings.version = SETTINGSVERSION;//Store the version number to allow for easier upgrades
systemSettings.displayTempInF = 0; //default to C systemSettings.displayTempInF = 0; //default to C
systemSettings.OrientationMode = 2; //Default to automatic systemSettings.OrientationMode = 2; //Default to automatic
systemSettings.sensitivity = 6; //Default high sensitivity systemSettings.sensitivity = 7; //Default high sensitivity
systemSettings.tempCalibration = 239; //Default to their calibration value systemSettings.tempCalibration = 239; //Default to their calibration value
systemSettings.voltageDiv = 144; //Default divider from schematic systemSettings.voltageDiv = 144; //Default divider from schematic
systemSettings.ShutdownTime = 30;//How many minutes until the unit turns itself off systemSettings.ShutdownTime = 30;//How many minutes until the unit turns itself off
@@ -74,6 +74,7 @@ void resetSettings() {
systemSettings.boostModeEnabled = 0;//Default to safe, with no boost mode systemSettings.boostModeEnabled = 0;//Default to safe, with no boost mode
systemSettings.BoostTemp = 4000; //default to 400C systemSettings.BoostTemp = 4000; //default to 400C
systemSettings.powerDisplay = 0; //default to power display being off systemSettings.powerDisplay = 0; //default to power display being off
systemSettings.autoStart=0; //Auto start off for safety
} }
void showBootLogoIfavailable() { void showBootLogoIfavailable() {

View File

@@ -5,7 +5,9 @@
* Author: Ben V. Brown * Author: Ben V. Brown
*/ */
#include "Strings.h" #include "Strings.h"
const char* SettingsLongNames[12] = #define LANG_EN
#ifdef LANG_EN
const char* SettingsLongNames[13] =
{ {
/*These are all the help text for all the settings.*/ /*These are all the help text for all the settings.*/
/*All must start with 6 spaces so they come on screen nicely.*/ /*All must start with 6 spaces so they come on screen nicely.*/
@@ -18,20 +20,29 @@ const char* SettingsLongNames[12] =
" Display Orientation <A. Automatic L. Left Handed R. Right Handed>", " Display Orientation <A. Automatic L. Left Handed R. Right Handed>",
" Enable front key boost 450C mode when soldering", " Enable front key boost 450C mode when soldering",
" Temperature when in boost mode", " Temperature when in boost mode",
" Changes the arrows to a power display when soldering" }; " Changes the arrows to a power display when soldering",
" Automatically starts the iron into soldering on power up." };
const char* SettingsShortNames[12]= #endif
#ifdef LANG_ES
const char* SettingsLongNames[13] =
{ {
"PWRSC ", /*These are all the help text for all the settings.*/
"STMP ", /*All must start with 6 spaces so they come on screen nicely.*/
"SLTME ", " Fuente de energia. Ajusta el limite inferior de voltaje. <DC 10V> <S 3.3V por celda>",
"SHTME ", " Temperatura en reposo. <C>", " Tiempo hasta activar reposo. <Minutos>",
"MSENSE ", " Tiempo hasta apagado. <Minutos>",
"TMPUNT ", " Sensibilidad del movimiento. <0.Apagado 1.El menos sensible 9.El mas sensible>",
"TMPRND ", " Unidad de temperatura.", " Cantidad de redondeo de la temperatura.",
"TMPSPD ", " Tasa de actualizaci<63>n de la temperatura.",
"DSPROT ", " Orientacion de la pantalla <A. Automatico L. Mano izquierda R. Mano derecha>",
"BOOST ", " Activar el boton <Boost> en modo soldadura.",
"BTMP ", " Temperatura en modo <Boost>.",
"PWRDSP ", " Cambiar las flechas en pantalla por indicador de potencia en modo soldadura.",
}; " Automatically starts the iron into soldering on power up."};
#endif
const char* SettingsShortNames[13] = { "PWRSC ", "STMP ", "SLTME ", "SHTME ",
"MSENSE ", "TMPUNT ", "TMPRND ", "TMPSPD ", "DSPROT ", "BOOST ",
"BTMP ", "PWRDSP ", "ASTART " };