PowerLimit

This commit is contained in:
firebie
2020-01-08 23:48:54 +02:00
parent 88b64e24c1
commit 358726631f
32 changed files with 5287 additions and 4636 deletions

View File

@@ -101,16 +101,16 @@ void resetSettings() {
systemSettings.coolingTempBlink = 0; // Blink the temperature on the cooling screen when its > 50C
systemSettings.temperatureInF = 0; // default to 0
systemSettings.descriptionScrollSpeed = 0; // default to slow
systemSettings.powerLimitEnable = 0; // Default to no power limit
#ifdef MODEL_TS100
systemSettings.CalibrationOffset = 900; // the adc offset in uV
systemSettings.pidPowerLimit=70; // Sets the max pwm power limit
systemSettings.CalibrationOffset = 900; // the adc offset in uV
systemSettings.pidPowerLimit = 70; // Sets the max pwm power limit
systemSettings.powerLimit = 30; // 30 watts default limit
#endif
#ifdef MODEL_TS80
systemSettings.pidPowerLimit = 24; // Sets the max pwm power limit
systemSettings.CalibrationOffset = 900; // the adc offset in uV
systemSettings.powerLimit = 24; // 24 watts default power limit
#endif
saveSettings(); // Save defaults
}

File diff suppressed because it is too large Load Diff

View File

@@ -37,7 +37,10 @@ static void settings_setAdvancedIDLEScreens(void);
static void settings_displayAdvancedIDLEScreens(void);
static void settings_setScrollSpeed(void);
static void settings_displayScrollSpeed(void);
static void settings_setPowerLimitEnable(void);
static void settings_displayPowerLimitEnable(void);
static void settings_setPowerLimit(void);
static void settings_displayPowerLimit(void);
static void settings_setDisplayRotation(void);
static void settings_displayDisplayRotation(void);
static void settings_setBoostModeEnabled(void);
@@ -87,6 +90,8 @@ static void settings_enterAdvancedMenu(void);
* Cooldown blink
*
* Advanced
* Enable Power Limit
* Power Limit
* Detailed IDLE
* Detailed Soldering
* Logo Time
@@ -174,13 +179,18 @@ const menuitem PowerMenu[] = {
const menuitem advancedMenu[] = {
/*
* Detailed IDLE
* Power limit enable
* Power limit
* Detailed IDLE
* Detailed Soldering
* Logo Time
* Calibrate Temperature
* Calibrate Input V
* Reset Settings
*/
{ (const char*) SettingsDescriptions[21], { settings_setPowerLimitEnable }, {
settings_displayPowerLimitEnable } }, /*Power limit enable*/
{ (const char*) SettingsDescriptions[22], { settings_setPowerLimit }, {
settings_displayPowerLimit } }, /*Power limit*/
{ (const char*) SettingsDescriptions[6], { settings_setAdvancedIDLEScreens }, {
settings_displayAdvancedIDLEScreens } }, /* Advanced idle screen*/
{ (const char*) SettingsDescriptions[15],
@@ -281,6 +291,8 @@ static int userConfirmation(const char *message) {
#ifdef MODEL_TS100
static void settings_setInputVRange(void) {
systemSettings.cutoutSetting = (systemSettings.cutoutSetting + 1) % 5;
if (systemSettings.cutoutSetting)
systemSettings.powerLimitEnable = 0; // disable power limit if switching to a lipo power source
}
static void settings_displayInputVRange(void) {
@@ -440,6 +452,37 @@ static void settings_displayAdvancedIDLEScreens(void) {
OLED::drawCheckbox(systemSettings.detailedIDLE);
}
static void settings_setPowerLimitEnable(void) {
systemSettings.powerLimitEnable = !systemSettings.powerLimitEnable;
}
static void settings_displayPowerLimitEnable(void) {
printShortDescription(21, 7);
OLED::drawCheckbox(systemSettings.powerLimitEnable);
}
static void settings_setPowerLimit(void) {
#ifdef MODEL_TS100
if (systemSettings.powerLimit >= 65)
systemSettings.powerLimit = 5;
else
systemSettings.powerLimit += 5;
#endif
#ifdef MODEL_TS80
if(systemSettings.powerLimit >= 30)
systemSettings.powerLimit = 2;
else
systemSettings.powerLimit += 2;
#endif
}
static void settings_displayPowerLimit(void) {
printShortDescription(22, 5);
OLED::printNumber(systemSettings.powerLimit, 2);
OLED::print(SymbolWatts);
}
static void settings_setScrollSpeed(void) {
if (systemSettings.descriptionScrollSpeed == 0)
systemSettings.descriptionScrollSpeed = 1;

View File

@@ -189,7 +189,11 @@ void startPIDTask(void const *argument __unused) {
lastPowerPulse = xTaskGetTickCount();
}
#endif
setTipX10Watts(x10WattsOut);
if (systemSettings.powerLimitEnable && x10WattsOut > (systemSettings.powerLimit * 10))
setTipX10Watts(systemSettings.powerLimit * 10);
else
setTipX10Watts(x10WattsOut);
HAL_IWDG_Refresh(&hiwdg);
} else {