Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: net 1-wire lpc1768 crypto clock web fram log
Diff: heating/boiler.c
- Revision:
- 48:6eac12df3ad5
- Parent:
- 41:6413522ed343
- Child:
- 91:8b192efd0288
diff -r 229338b3adcb -r 6eac12df3ad5 heating/boiler.c
--- a/heating/boiler.c Tue Apr 23 18:47:47 2019 +0000
+++ b/heating/boiler.c Fri Apr 26 16:40:19 2019 +0000
@@ -17,33 +17,48 @@
#define BOILER_CALL_SET FIO2SET(5)
#define BOILER_CALL_CLR FIO2CLR(5)
-static char tankRom[8]; static int iTankRom;
-static char outputRom[8]; static int iOutputRom;
-static char returnRom[8]; static int iReturnRom;
+static char* tankRom; static int iTankRom;
+static char* outputRom; static int iOutputRom;
+static char* returnRom; static int iReturnRom;
static int32_t tankSetPoint; static int iTankSetPoint;
static int32_t tankHysteresis; static int iTankHysteresis;
static int32_t runOnResidual; static int iRunOnResidual;
static int32_t runOnTime; static int iRunOnTime;
-char* BoilerGetTankRom () { return tankRom; }
-char* BoilerGetOutputRom () { return outputRom; }
-char* BoilerGetReturnRom () { return returnRom; }
-int BoilerGetTankSetPoint () { return (int) tankSetPoint; }
-int BoilerGetTankHysteresis() { return (int) tankHysteresis; }
-int BoilerGetRunOnResidual () { return (int) runOnResidual; }
-int BoilerGetRunOnTime () { return (int) runOnTime; }
+uint16_t BoilerGetTankDS18B20Value () { return DS18B20ValueFromRom(tankRom); }
+uint16_t BoilerGetOutputDS18B20Value() { return DS18B20ValueFromRom(outputRom); }
+uint16_t BoilerGetReturnDS18B20Value() { return DS18B20ValueFromRom(returnRom); }
+int BoilerGetTankSetPoint () { return tankSetPoint; }
+int BoilerGetTankHysteresis () { return tankHysteresis; }
+int BoilerGetRunOnResidual () { return runOnResidual; }
+int BoilerGetRunOnTime () { return runOnTime; }
-void BoilerSetTankRom (char* value) { memcpy(tankRom, value, 8); FramWrite(iTankRom, 8, tankRom ); }
-void BoilerSetOutputRom (char* value) { memcpy(outputRom, value, 8); FramWrite(iOutputRom, 8, outputRom ); }
-void BoilerSetReturnRom (char* value) { memcpy(returnRom, value, 8); FramWrite(iReturnRom, 8, returnRom ); }
-void BoilerSetTankSetPoint (int value) { tankSetPoint = (int32_t)value; FramWrite(iTankSetPoint, 4, &tankSetPoint ); }
-void BoilerSetTankHysteresis (int value) { tankHysteresis = (int32_t)value; FramWrite(iTankHysteresis, 4, &tankHysteresis ); }
-void BoilerSetRunOnResidual (int value) { runOnResidual = (int32_t)value; FramWrite(iRunOnResidual, 4, &runOnResidual ); }
-void BoilerSetRunOnTime (int value) { runOnTime = (int32_t)value; FramWrite(iRunOnTime, 4, &runOnTime ); }
+static void setTankRom (char* value) { memcpy(tankRom, value, 8); FramWrite(iTankRom, 8, tankRom ); }
+static void setOutputRom (char* value) { memcpy(outputRom, value, 8); FramWrite(iOutputRom, 8, outputRom ); }
+static void setReturnRom (char* value) { memcpy(returnRom, value, 8); FramWrite(iReturnRom, 8, returnRom ); }
+void BoilerSetTankSetPoint (int value) { tankSetPoint = value; FramWrite(iTankSetPoint, 4, &tankSetPoint ); }
+void BoilerSetTankHysteresis (int value) { tankHysteresis = value; FramWrite(iTankHysteresis, 4, &tankHysteresis ); }
+void BoilerSetRunOnResidual (int value) { runOnResidual = value; FramWrite(iRunOnResidual, 4, &runOnResidual ); }
+void BoilerSetRunOnTime (int value) { runOnTime = value; FramWrite(iRunOnTime, 4, &runOnTime ); }
int BoilerInit()
{
+ tankRom = DS18B20Roms + 8 * DS18B20RomCount;
+ DS18B20RomSetters[DS18B20RomCount] = setTankRom;
+ DS18B20RomNames[DS18B20RomCount] = "Tank";
+ DS18B20RomCount++;
+
+ outputRom = DS18B20Roms + 8 * DS18B20RomCount;
+ DS18B20RomSetters[DS18B20RomCount] = setOutputRom;
+ DS18B20RomNames[DS18B20RomCount] = "BlrOut";
+ DS18B20RomCount++;
+
+ returnRom = DS18B20Roms + 8 * DS18B20RomCount;
+ DS18B20RomSetters[DS18B20RomCount] = setReturnRom;
+ DS18B20RomNames[DS18B20RomCount] = "BlrRtn";
+ DS18B20RomCount++;
+
int address;
int32_t def4;
address = FramLoad( 8, tankRom, 0); if (address < 0) return -1; iTankRom = address;
@@ -56,7 +71,7 @@
BOILER_PUMP_DIR = 1; //Set the direction to 1 == output
BOILER_CALL_DIR = 1; //Set the direction to 1 == output
-
+
return 0;
}
bool BoilerCall = false;