mir ist hier sogar grad ein Fehler aufgefallen
Zitat:
Delphi-Quellcode:
if HeatIsOn then
if ActualTemp > RefTemp + THysteresis then HeatIsOn := false
else
if ActualTemp < RefTemp then HeatIsOn := true;
das ELSE gehört ja nicht zum ersten IF, sondern zum Zweiten,
also so
Delphi-Quellcode:
if HeatIsOn then
if ActualTemp > RefTemp + THysteresis then HeatIsOn := false
else
if ActualTemp < RefTemp then HeatIsOn := true;
und so kann die Heizung nur ausgeschaltet werden, denn wenn die Heizung schon aus ist, wird hier nix mehr gemacht
wobei es bestimmt so gedacht war
Delphi-Quellcode:
if HeatIsOn then
begin
if ActualTemp > RefTemp + THysteresis then HeatIsOn := false;
end
else
if ActualTemp < RefTemp then HeatIsOn := true;
aber das
if HeatIsOn then ist hierbei eh "unwichtig", da die so abgekapselten Einzelvergleiche im jeweils anderen Zustand von HeatIsOn eh keine Veränderung hervorufen.