Rough tip resistance progress

This commit is contained in:
Ben V. Brown
2022-05-23 21:42:56 +10:00
parent 226750df4c
commit 75b3f09438
8 changed files with 75 additions and 17 deletions

View File

@@ -45,12 +45,15 @@ void startPIDTask(void const *argument __unused) {
TipThermoModel::getTipInC(true);
getInputVoltageX10(getSettingValue(SettingsOptions::VoltageDiv), 1);
}
int32_t x10WattsOut = 0;
int32_t x10WattsOut = 0;
bool measuringTipResistance = false;
for (;;) {
x10WattsOut = 0;
// This is a call to block this thread until the ADC does its samples
if (ulTaskNotifyTake(pdTRUE, 2000)) {
if (measuringTipResistance) {
FinishMeasureTipResistance();
}
// Do the reading here to keep the temp calculations churning along
uint32_t currentTipTempInC = TipThermoModel::getTipInC(true);
PIDTempTarget = currentTempTargetDegC;
@@ -72,6 +75,11 @@ void startPIDTask(void const *argument __unused) {
detectThermalRunaway(currentTipTempInC, 0);
}
setOutputx10WattsViaFilters(x10WattsOut);
// If the output is off, take tip measurement reading
if (x10WattsOut == 0 && PIDTempTarget == 0) {
startMeasureTipResistance();
measuringTipResistance = true;
}
} else {
// ADC interrupt timeout
setTipPWM(0, false);