mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Functioning MVP tester
This commit is contained in:
@@ -54,12 +54,12 @@ void GUIDelay() {
|
|||||||
}
|
}
|
||||||
void gui_drawTipTemp(bool symbol) {
|
void gui_drawTipTemp(bool symbol) {
|
||||||
// Draw tip temp handling unit conversion & tolerance near setpoint
|
// Draw tip temp handling unit conversion & tolerance near setpoint
|
||||||
uint16_t Temp = getTipRawTemp(0);
|
uint16_t Temp = 0;
|
||||||
|
|
||||||
if (systemSettings.temperatureInF)
|
if (systemSettings.temperatureInF)
|
||||||
Temp = TipThermoModel::convertTipRawADCToDegF(Temp);
|
Temp = TipThermoModel::getTipInF();
|
||||||
else
|
else
|
||||||
Temp = TipThermoModel::convertTipRawADCToDegC(Temp);
|
Temp = TipThermoModel::getTipInC();
|
||||||
|
|
||||||
OLED::printNumber(Temp, 3); // Draw the tip temp out finally
|
OLED::printNumber(Temp, 3); // Draw the tip temp out finally
|
||||||
if (symbol) {
|
if (symbol) {
|
||||||
@@ -368,9 +368,9 @@ static int gui_SolderingSleepingMode() {
|
|||||||
// draw the lcd
|
// draw the lcd
|
||||||
uint16_t tipTemp;
|
uint16_t tipTemp;
|
||||||
if (systemSettings.temperatureInF)
|
if (systemSettings.temperatureInF)
|
||||||
tipTemp = TipThermoModel::convertTipRawADCToDegF(getTipRawTemp(0));
|
tipTemp = TipThermoModel::getTipInF();
|
||||||
else
|
else
|
||||||
tipTemp = TipThermoModel::convertTipRawADCToDegC(getTipRawTemp(0));
|
tipTemp = TipThermoModel::getTipInC();
|
||||||
|
|
||||||
OLED::clearScreen();
|
OLED::clearScreen();
|
||||||
OLED::setCursor(0, 0);
|
OLED::setCursor(0, 0);
|
||||||
@@ -762,7 +762,7 @@ void startGUITask(void const *argument __unused) {
|
|||||||
|
|
||||||
currentTempTargetDegC = 0; // ensure tip is off
|
currentTempTargetDegC = 0; // ensure tip is off
|
||||||
getInputVoltageX10(systemSettings.voltageDiv, 0);
|
getInputVoltageX10(systemSettings.voltageDiv, 0);
|
||||||
uint16_t tipTemp = TipThermoModel::convertTipRawADCToDegC(getTipRawTemp(0));
|
uint16_t tipTemp = TipThermoModel::getTipInC();
|
||||||
|
|
||||||
// Preemptively turn the display on. Turn it off if and only if
|
// Preemptively turn the display on. Turn it off if and only if
|
||||||
// the tip temperature is below 50 degrees C *and* motion sleep
|
// the tip temperature is below 50 degrees C *and* motion sleep
|
||||||
|
|||||||
@@ -110,12 +110,12 @@ void resetSettings() {
|
|||||||
|
|
||||||
#ifdef MODEL_TS100
|
#ifdef MODEL_TS100
|
||||||
|
|
||||||
systemSettings.CalibrationOffset = 700; // the adc offset in uV
|
systemSettings.CalibrationOffset = 800; // the adc offset in uV
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODEL_TS80
|
#ifdef MODEL_TS80
|
||||||
systemSettings.pidPowerLimit=24; // Sets the max pwm power limit
|
systemSettings.pidPowerLimit=24; // Sets the max pwm power limit
|
||||||
systemSettings.CalibrationOffset = 700; // the adc offset in uV
|
systemSettings.CalibrationOffset = 800; // the adc offset in uV
|
||||||
#endif
|
#endif
|
||||||
saveSettings(); // Save defaults
|
saveSettings(); // Save defaults
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include "TipThermoModel.h"
|
#include "TipThermoModel.h"
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
|
#include "hardware.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The hardware is laid out as a non-inverting op-amp
|
* The hardware is laid out as a non-inverting op-amp
|
||||||
@@ -245,3 +246,16 @@ uint32_t TipThermoModel::convertFtoC(uint32_t degF) {
|
|||||||
return ((degF - 32) * 5) / 9;
|
return ((degF - 32) * 5) / 9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t TipThermoModel::getTipInC(bool sampleNow) {
|
||||||
|
uint32_t currentTipTempInC = TipThermoModel::convertTipRawADCToDegC(
|
||||||
|
getTipRawTemp(sampleNow));
|
||||||
|
currentTipTempInC += getHandleTemperature() / 10; //Add handle offset
|
||||||
|
return currentTipTempInC;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t TipThermoModel::getTipInF(bool sampleNow) {
|
||||||
|
uint32_t currentTipTempInF = TipThermoModel::convertTipRawADCToDegF(
|
||||||
|
getTipRawTemp(sampleNow));
|
||||||
|
currentTipTempInF += convertCtoF(getHandleTemperature() / 10); //Add handle offset
|
||||||
|
return currentTipTempInF;
|
||||||
|
}
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
class TipThermoModel {
|
class TipThermoModel {
|
||||||
public:
|
public:
|
||||||
//These are the main two functions
|
//These are the main two functions
|
||||||
|
static uint32_t getTipInC(bool sampleNow=false);
|
||||||
|
static uint32_t getTipInF(bool sampleNow=false);
|
||||||
|
|
||||||
|
|
||||||
static uint32_t convertTipRawADCToDegC(uint16_t rawADC);
|
static uint32_t convertTipRawADCToDegC(uint16_t rawADC);
|
||||||
static uint32_t convertTipRawADCToDegF(uint16_t rawADC);
|
static uint32_t convertTipRawADCToDegF(uint16_t rawADC);
|
||||||
//Returns the uV of the tip reading before the op-amp compensating for pullups
|
//Returns the uV of the tip reading before the op-amp compensating for pullups
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ void startPIDTask(void const *argument __unused) {
|
|||||||
|
|
||||||
if (ulTaskNotifyTake(pdTRUE, 2000)) {
|
if (ulTaskNotifyTake(pdTRUE, 2000)) {
|
||||||
// This is a call to block this thread until the ADC does its samples
|
// This is a call to block this thread until the ADC does its samples
|
||||||
uint16_t rawTemp = getTipRawTemp(1); // get instantaneous reading
|
|
||||||
if (currentTempTargetDegC) {
|
if (currentTempTargetDegC) {
|
||||||
// Cap the max set point to 450C
|
// Cap the max set point to 450C
|
||||||
if (currentTempTargetDegC > (450)) {
|
if (currentTempTargetDegC > (450)) {
|
||||||
@@ -134,9 +133,7 @@ void startPIDTask(void const *argument __unused) {
|
|||||||
currentTempTargetDegC = (450);
|
currentTempTargetDegC = (450);
|
||||||
}
|
}
|
||||||
// Convert the current tip to degree's C
|
// Convert the current tip to degree's C
|
||||||
uint32_t currentTipTempInC =
|
uint32_t currentTipTempInC = TipThermoModel::getTipInC(true);
|
||||||
TipThermoModel::convertTipRawADCToDegC(rawTemp);
|
|
||||||
currentTipTempInC += getHandleTemperature() / 10; //Add handle offset
|
|
||||||
|
|
||||||
// As we get close to our target, temp noise causes the system
|
// As we get close to our target, temp noise causes the system
|
||||||
// to be unstable. Use a rolling average to dampen it.
|
// to be unstable. Use a rolling average to dampen it.
|
||||||
|
|||||||
Reference in New Issue
Block a user