Formatting, no functional changes

This commit is contained in:
Gordon Bolton 2024-06-25 21:34:47 +01:00
parent 5ab1db583a
commit 38375ea750
15 changed files with 248 additions and 227 deletions

View File

@ -11,7 +11,8 @@
void setup();
void loop();
void setup() {
void setup()
{
Serial.begin(115200);
// Disable the watchdog timers
@ -26,11 +27,11 @@ void setup() {
// Set pin modes
pinMode(EN_PIN, OUTPUT);
digitalWrite(EN_PIN, HIGH); // Disable motor initially
digitalWrite(EN_PIN, HIGH); // Disable motor initially
pinMode(beeperPin, OUTPUT);
// Set stepper motor properties
stepper.setMaxSpeed(SPEED);
stepper.setAcceleration(9600); // Set acceleration
stepper.setAcceleration(9600); // Set acceleration
// Display welcome message
lcd.setCursor(6, 1);
@ -41,6 +42,7 @@ void setup() {
lcd.clear();
}
void loop() {
void loop()
{
startingMenu();
}

View File

@ -1,19 +1,18 @@
#include "config.h"
// Global variables definition
const char* version = "V0.1.0 20240625";
const char *version = "V0.1.0 20240625";
const byte ROWS = 5;
const byte COLS = 4;
byte rowPins[ROWS] = { 19, 18, 5, 17, 16 };
byte colPins[COLS] = { 15, 2, 0, 4 };
byte rowPins[ROWS] = {19, 18, 5, 17, 16};
byte colPins[COLS] = {15, 2, 0, 4};
char keys[ROWS][COLS] = {
{ 'F', 'E', '#', '*' },
{ '1', '2', '3', 'U' },
{ '4', '5', '6', 'D' },
{ '7', '8', '9', 'X' },
{ 'L', '0', 'R', 'E' }
};
{'F', 'E', '#', '*'},
{'1', '2', '3', 'U'},
{'4', '5', '6', 'D'},
{'7', '8', '9', 'X'},
{'L', '0', 'R', 'E'}};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, LCD_COLUMNS, LCD_ROWS);
@ -32,12 +31,11 @@ unsigned long processStartTime;
unsigned long processTimeMillis;
byte thermometer[8] = {
B00100,
B01100,
B00100,
B01100,
B00100,
B01110,
B01110,
B01110
};
B00100,
B01100,
B00100,
B01100,
B00100,
B01110,
B01110,
B01110};

View File

@ -21,7 +21,7 @@
#define TEMP_SENSOR_PIN 13
#define NUM_DEV_SEQUENCES 6
extern const char* version;
extern const char *version;
extern Keypad keypad;
extern LiquidCrystal_I2C lcd;
extern AccelStepper stepper;

View File

@ -1,103 +1,72 @@
#include "devSequence.h"
struct devSequence devSequences[NUM_DEV_SEQUENCES] = {
{
"C41",
7,
{ 180, 195, 45, 180, 60, 60, 30 }, //processTime
{ "Prewarm", "Developer", "Bleach", "Fix", "Rinse 1", "Rinse 2", "Fin Rinse" }, //processName
{
{ 1, 5.5, 5.5, 5.5, 3.5, 3.5, 1 }, //CW rotations processCycle
{ 1, 5, 5, 5, 3, 3, 1 }
}, //CCW rotations processCycle
{
{ 37.8, 37.8, 32, 32, 32, 32, 32 }, //min processTemp
{ 38, 38, 38, 38, 38, 38, 38 }, //preferred processTemp
{ 38.2, 38.2, 38.2, 38.2, 38.2, 38.2, 38.2 } //max processTemp
}
},
{
"E6",
12,
{180, 360, 120, 120, 360, 120, 360, 240, 120, 120, 120, 30},
{"Preheat", "FirstDev", "Wash 1", "Reversal", "ColorDev", "PreBleach", "Bleach", "Fixer", "Wash 2", "Wash 3", "Wash 4", "Fin Rinse"},
{
{1, 5.5, 3.5, 5, 5.5, 5.5, 5.5, 5.5, 3.5, 3.5, 3.5, 3.5},
{1, 5, 3, 5.5, 5, 5.5, 5.5, 5.5, 3, 3, 3, 3}
},
{
{37.5, 37.7, 33.0, 37.7, 37.0, 37, 37.5, 37.5, 33.0, 33.0, 33.0, 19.0},
{38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 20.0},
{38.5, 38.3, 38.0, 38.3, 39.0, 38, 38.5, 38.5, 38.5, 38.5, 38.5, 21.0}
}
},
{
"ECN-2",
9,
{180, 0, 210, 60, 180, 150, 120, 300, 120},
{"Prebath", "RemJet", "Developer", "Stop Bath", "Wash", "Bleach", "Fixer", "Wash 2", "Fin Rinse"},
{
{1, 0, 5.5, 3.5, 3.5, 5.5, 5.5, 3.5, 1},
{1, 0, 5, 3, 3, 5, 5, 3, 1}
},
{
{27.0, 0, 40.8, 27.0, 27.0, 27.0, 27.0, 27.0, 27.0},
{38.0, 0, 41.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0},
{38.0, 0, 41.2, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0}
}
},
{
"B&W",
7,
{510, 30, 300, 60, 90, 120, 30},
{"Developer", "Stop", "Fix", "Rinse 1", "Rinse 2", "Rinse 3", "Fin Rinse"},
{
{ 5.5, 3.5, 3.5, 3.5, 3.5, 3.5, 1},
{ 5, 3, 3, 3, 3, 3, 1}
},
{
{19, 19, 19, 19, 19, 19, 19},
{20, 20, 20, 20, 20, 20, 20},
{21, 21, 21, 21, 21, 21, 21}
}
},
{
"Custom",
4,
{10, 10, 10, 10},
{"Developer", "Stop", "Fix", "Rinse"},
{
{ 5.5, 3.5, 3.5, 3.5},
{ 5, 3, 3, 3}
},
{
{19, 19, 19, 19},
{20, 20, 20, 20},
{21, 21, 21, 21}
}
},
{
"B&WREV",
12,
{720, 300, 300, 60, 120, 60, 120, 360, 60, 300, 60, 60},
{"FirstDev", "Wash 1", "Bleach", "Wash 2", "Clearing", "Wash 3", "Reversal", "SecondDev", "Wash 4", "Fix", "Wash 5", "Fin Rinse"},
{
{5.5, 3.5, 5.5, 3.5, 5.5, 3.5, 5.5, 5.5, 3.5, 5.5, 3.5, 3.5},
{5, 3, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3}
},
{
{19.5, 15.5, 19.5, 15.5, 19.5, 15.5, 19.5, 19.5, 15.5, 19.5, 15.5, 15.5},
{20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0},
{20.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5}
}
}
};
{"C41",
7,
{180, 195, 45, 180, 60, 60, 30}, // processTime
{"Prewarm", "Developer", "Bleach", "Fix", "Rinse 1", "Rinse 2", "Fin Rinse"}, // processName
{
{1, 5.5, 5.5, 5.5, 3.5, 3.5, 1}, // CW rotations processCycle
{1, 5, 5, 5, 3, 3, 1}}, // CCW rotations processCycle
{
{37.8, 37.8, 32, 32, 32, 32, 32}, // min processTemp
{38, 38, 38, 38, 38, 38, 38}, // preferred processTemp
{38.2, 38.2, 38.2, 38.2, 38.2, 38.2, 38.2} // max processTemp
}},
{"E6",
12,
{180, 360, 120, 120, 360, 120, 360, 240, 120, 120, 120, 30},
{"Preheat", "FirstDev", "Wash 1", "Reversal", "ColorDev", "PreBleach", "Bleach", "Fixer", "Wash 2", "Wash 3", "Wash 4", "Fin Rinse"},
{{1, 5.5, 3.5, 5, 5.5, 5.5, 5.5, 5.5, 3.5, 3.5, 3.5, 3.5},
{1, 5, 3, 5.5, 5, 5.5, 5.5, 5.5, 3, 3, 3, 3}},
{{37.5, 37.7, 33.0, 37.7, 37.0, 37, 37.5, 37.5, 33.0, 33.0, 33.0, 19.0},
{38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 20.0},
{38.5, 38.3, 38.0, 38.3, 39.0, 38, 38.5, 38.5, 38.5, 38.5, 38.5, 21.0}}},
{"ECN-2",
9,
{180, 0, 210, 60, 180, 150, 120, 300, 120},
{"Prebath", "RemJet", "Developer", "Stop Bath", "Wash", "Bleach", "Fixer", "Wash 2", "Fin Rinse"},
{{1, 0, 5.5, 3.5, 3.5, 5.5, 5.5, 3.5, 1},
{1, 0, 5, 3, 3, 5, 5, 3, 1}},
{{27.0, 0, 40.8, 27.0, 27.0, 27.0, 27.0, 27.0, 27.0},
{38.0, 0, 41.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0},
{38.0, 0, 41.2, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0}}},
{"B&W",
7,
{510, 30, 300, 60, 90, 120, 30},
{"Developer", "Stop", "Fix", "Rinse 1", "Rinse 2", "Rinse 3", "Fin Rinse"},
{{5.5, 3.5, 3.5, 3.5, 3.5, 3.5, 1},
{5, 3, 3, 3, 3, 3, 1}},
{{19, 19, 19, 19, 19, 19, 19},
{20, 20, 20, 20, 20, 20, 20},
{21, 21, 21, 21, 21, 21, 21}}},
{"Custom",
4,
{10, 10, 10, 10},
{"Developer", "Stop", "Fix", "Rinse"},
{{5.5, 3.5, 3.5, 3.5},
{5, 3, 3, 3}},
{{19, 19, 19, 19},
{20, 20, 20, 20},
{21, 21, 21, 21}}},
{"B&WREV",
12,
{720, 300, 300, 60, 120, 60, 120, 360, 60, 300, 60, 60},
{"FirstDev", "Wash 1", "Bleach", "Wash 2", "Clearing", "Wash 3", "Reversal", "SecondDev", "Wash 4", "Fix", "Wash 5", "Fin Rinse"},
{{5.5, 3.5, 5.5, 3.5, 5.5, 3.5, 5.5, 5.5, 3.5, 5.5, 3.5, 3.5},
{5, 3, 5, 3, 5, 3, 5, 5, 3, 5, 3, 3}},
{{19.5, 15.5, 19.5, 15.5, 19.5, 15.5, 19.5, 19.5, 15.5, 19.5, 15.5, 15.5},
{20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0},
{20.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5, 22.5}}}};
struct devSequence* findSequenceByName(const char* processName) {
for (int i = 0; i < NUM_DEV_SEQUENCES; i++) {
if (strcmp(devSequences[i].processName, processName) == 0) {
return &devSequences[i];
}
}
return NULL; // Return NULL if not found
struct devSequence *findSequenceByName(const char *processName)
{
for (int i = 0; i < NUM_DEV_SEQUENCES; i++)
{
if (strcmp(devSequences[i].processName, processName) == 0)
{
return &devSequences[i];
}
}
return NULL; // Return NULL if not found
}

View File

@ -3,7 +3,8 @@
#define NUM_DEV_SEQUENCES 6
#include <Arduino.h>
struct devSequence {
struct devSequence
{
char processName[7];
int cycles;
unsigned long int processTime[20];
@ -14,6 +15,6 @@ struct devSequence {
extern struct devSequence devSequences[NUM_DEV_SEQUENCES];
struct devSequence* findSequenceByName(const char* processName);
struct devSequence *findSequenceByName(const char *processName);
#endif

View File

@ -1,8 +1,8 @@
#include "display.h"
#include "menu.h"
void startingMenu() {
void startingMenu()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Select Programme:");
@ -19,17 +19,20 @@ void startingMenu() {
lcd.setCursor(10, 3);
lcd.print("6. B&W Rev");
while (devPgm == "") {
while (devPgm == "")
{
getMenuInput();
}
lcd.print(devPgm);
if (devPgm == "C41" || devPgm == "E6" || devPgm == "B&W" || devPgm == "ECN-2" || devPgm == "Custom" || devPgm == "B&WREV") {
if (devPgm == "C41" || devPgm == "E6" || devPgm == "B&W" || devPgm == "ECN-2" || devPgm == "Custom" || devPgm == "B&WREV")
{
startDev();
}
}
void processHeadings() {
void processHeadings()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Step");
@ -39,11 +42,11 @@ void processHeadings() {
lcd.print("Temp");
}
char* secondsToMinutesSeconds(int seconds) {
char* result = (char*)malloc(6 * sizeof(char));
if (result == NULL) {
char *secondsToMinutesSeconds(int seconds)
{
char *result = (char *)malloc(6 * sizeof(char));
if (result == NULL)
{
return NULL;
}

View File

@ -4,10 +4,10 @@
#include <LiquidCrystal_I2C.h>
#include "config.h"
void updateTempDisplay(void* parameter);
void updateTempDisplay(void *parameter);
void startingMenu();
void processHeadings();
void readTemperature();
char* secondsToMinutesSeconds(int seconds);
char *secondsToMinutesSeconds(int seconds);
#endif

View File

@ -1,66 +1,80 @@
#include "menu.h"
void getMenuInput() {
char key = keypad.getKey();
if (key != NO_KEY) {
switch (key) {
case '1':
devPgm = "C41";
break;
case '2':
devPgm = "E6";
break;
case '3':
devPgm = "B&W";
break;
case '4':
devPgm = "ECN-2";
break;
case '5':
devPgm = "Custom";
break;
case '6':
devPgm = "B&WREV";
break;
}
}
void getMenuInput()
{
char key = keypad.getKey();
if (key != NO_KEY)
{
switch (key)
{
case '1':
devPgm = "C41";
break;
case '2':
devPgm = "E6";
break;
case '3':
devPgm = "B&W";
break;
case '4':
devPgm = "ECN-2";
break;
case '5':
devPgm = "Custom";
break;
case '6':
devPgm = "B&WREV";
break;
}
}
}
char getScrollEntEscInput() {
while (true) {
char getScrollEntEscInput()
{
while (true)
{
char key = keypad.getKey();
if (key != NO_KEY) {
if (key == 'U' || key == 'D' || key == 'X' || key == 'E' || key == 'L' || key == 'R') {
if (key != NO_KEY)
{
if (key == 'U' || key == 'D' || key == 'X' || key == 'E' || key == 'L' || key == 'R')
{
return key;
}
}
if (millis() % 1000 == 0) {
if (millis() % 1000 == 0)
{
readTemperature();
}
}
}
char getEntEscInput() {
while (true) {
char getEntEscInput()
{
while (true)
{
char key = keypad.getKey();
if (key != NO_KEY) {
if (key == 'X' || key == 'E') {
if (key != NO_KEY)
{
if (key == 'X' || key == 'E')
{
return key;
}
}
if (millis() % 1000 == 0) {
if (millis() % 1000 == 0)
{
readTemperature();
}
}
}
int startProcessing(struct devSequence* sequence, int sequenceStep) {
int startProcessing(struct devSequence *sequence, int sequenceStep)
{
run = 1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(sequence->processCycleName[sequenceStep]);
for (int x = strlen(sequence->processCycleName[sequenceStep]); x < 10; x++) {
for (int x = strlen(sequence->processCycleName[sequenceStep]); x < 10; x++)
{
lcd.print(" ");
}
@ -73,7 +87,8 @@ int startProcessing(struct devSequence* sequence, int sequenceStep) {
lcd.print("Ent:start Esc:quit");
char key = getEntEscInput();
if (key == 'X') {
if (key == 'X')
{
devPgm = "";
run = 0;
return 0;
@ -81,7 +96,7 @@ int startProcessing(struct devSequence* sequence, int sequenceStep) {
processTimeMillis = (unsigned long)sequence->processTime[sequenceStep] * 1000;
processStartTime = millis();
MotorTaskParams* params = new MotorTaskParams();
MotorTaskParams *params = new MotorTaskParams();
params->cwRotations = sequence->processCycle[0][sequenceStep];
params->ccwRotations = sequence->processCycle[1][sequenceStep];
params->processEndTime = processStartTime + processTimeMillis;
@ -94,24 +109,26 @@ int startProcessing(struct devSequence* sequence, int sequenceStep) {
Serial.println(params->processEndTime);
xTaskCreatePinnedToCore(
runMotorTask,
"MotorTask",
8192,
(void*)params,
1,
&motorTaskHandle,
0);
runMotorTask,
"MotorTask",
8192,
(void *)params,
1,
&motorTaskHandle,
0);
while (millis() < processStartTime + processTimeMillis) {
while (millis() < processStartTime + processTimeMillis)
{
lcd.setCursor(0, 1);
lcd.print("Remaining: " + (String)secondsToMinutesSeconds((processStartTime + processTimeMillis - millis()) / 1000) + " ");
delay(410);
Serial.println("before temp read" + (String) millis() + "\n");
Serial.println("before temp read" + (String)millis() + "\n");
readTemperature();
Serial.println("after temp read" + (String) millis() + "\n");
Serial.println("after temp read" + (String)millis() + "\n");
}
if (motorTaskHandle != NULL) {
if (motorTaskHandle != NULL)
{
vTaskDelete(motorTaskHandle);
motorTaskHandle = NULL;
}
@ -121,12 +138,15 @@ int startProcessing(struct devSequence* sequence, int sequenceStep) {
return 1;
}
void startDev() {
const char* searchName = devPgm.c_str();
struct devSequence* currentSequence = findSequenceByName(searchName);
void startDev()
{
const char *searchName = devPgm.c_str();
struct devSequence *currentSequence = findSequenceByName(searchName);
for (int i = 0; i < currentSequence->cycles; i++) {
if (run == 1) {
for (int i = 0; i < currentSequence->cycles; i++)
{
if (run == 1)
{
run = startProcessing(currentSequence, i);
continue;
}
@ -134,7 +154,8 @@ void startDev() {
processHeadings();
lcd.setCursor(0, 1);
lcd.print(currentSequence->processCycleName[i]);
for (int x = strlen(currentSequence->processCycleName[i]); x < 10; x++) {
for (int x = strlen(currentSequence->processCycleName[i]); x < 10; x++)
{
lcd.print(" ");
}
@ -147,29 +168,43 @@ void startDev() {
lcd.print("Scroll / Esc / Ent");
char key = getScrollEntEscInput();
if (key == 'U') {
if (i > 0) {
if (key == 'U')
{
if (i > 0)
{
i--;
}
i--;
} else if (key == 'D' && i < currentSequence->cycles - 1) {
}
else if (key == 'D' && i < currentSequence->cycles - 1)
{
continue;
} else if (key == 'D' && i == currentSequence->cycles - 1) {
}
else if (key == 'D' && i == currentSequence->cycles - 1)
{
i--;
continue;
} else if (key == 'X') {
}
else if (key == 'X')
{
devPgm = "";
run = 0;
return;
} else if (key == 'E') {
}
else if (key == 'E')
{
int run = 1;
startProcessing(currentSequence, i);
} else if (key == 'L') {
}
else if (key == 'L')
{
currentSequence->processTime[i] -= 5;
lcd.setCursor(10, 1);
lcd.print(secondsToMinutesSeconds(currentSequence->processTime[i]));
i--;
} else if (key == 'R') {
}
else if (key == 'R')
{
currentSequence->processTime[i] += 5;
lcd.setCursor(10, 1);
lcd.print(secondsToMinutesSeconds(currentSequence->processTime[i]));

View File

@ -10,7 +10,7 @@
void getMenuInput();
char getScrollEntEscInput();
char getEntEscInput();
int startProcessing(struct devSequence* sequence, int sequenceStep);
int startProcessing(struct devSequence *sequence, int sequenceStep);
void startDev();
#endif

View File

@ -1,16 +1,19 @@
#include "motor.h"
void runMotorTask(void* parameter) {
MotorTaskParams* params = (MotorTaskParams*)parameter;
void runMotorTask(void *parameter)
{
MotorTaskParams *params = (MotorTaskParams *)parameter;
// Enable the motor
digitalWrite(EN_PIN, LOW);
while (true) {
while (true)
{
// Rotate clockwise
Serial.println("Rotating CW" + (String)params->cwRotations);
stepper.setCurrentPosition(0);
stepper.moveTo(STEPS_PER_REV * params->cwRotations);
while (stepper.distanceToGo() != 0) {
while (stepper.distanceToGo() != 0)
{
stepper.run();
}
@ -18,12 +21,13 @@ void runMotorTask(void* parameter) {
Serial.println("Rotating CCW" + (String)params->ccwRotations);
stepper.setCurrentPosition(0);
stepper.moveTo(-STEPS_PER_REV * params->ccwRotations);
while (stepper.distanceToGo() != 0) {
while (stepper.distanceToGo() != 0)
{
stepper.run();
}
}
// Disable the motor
digitalWrite(EN_PIN, HIGH);
vTaskDelete(NULL); // Delete the task when done
vTaskDelete(NULL); // Delete the task when done
}

View File

@ -4,12 +4,13 @@
#include <AccelStepper.h>
#include "config.h"
struct MotorTaskParams {
struct MotorTaskParams
{
float cwRotations;
float ccwRotations;
unsigned long int processEndTime;
};
void runMotorTask(void* parameter);
void runMotorTask(void *parameter);
#endif

View File

@ -1,15 +1,14 @@
#include "sound.h"
int melody[] = {
262, 294, 330, 349, 392, 440, 494, 523, 587, 659, 698, 784, 880, 988, 1047
};
262, 294, 330, 349, 392, 440, 494, 523, 587, 659, 698, 784, 880, 988, 1047};
int noteDurations[] = {
250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250
};
250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
void playTune() {
for (int thisNote = 0; thisNote < 15; thisNote++) {
void playTune()
{
for (int thisNote = 0; thisNote < 15; thisNote++)
{
int noteDuration = noteDurations[thisNote];
tone(beeperPin, melody[thisNote], noteDuration);
@ -20,8 +19,10 @@ void playTune() {
}
}
void playAlarmTone() {
for (int i = 1; i <= 10; i++) {
void playAlarmTone()
{
for (int i = 1; i <= 10; i++)
{
tone(beeperPin, 2000);
delay(500);
noTone(beeperPin);

View File

@ -1,2 +0,0 @@
spec.o: \
C:/Users/gordon/Documents/sloeber-workspace/.metadata/.plugins/org.eclipse.cdt.managedbuilder.core/spec.cpp

View File

@ -1,29 +1,37 @@
#include "temperature.h"
void readTemperature() {
void readTemperature()
{
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
lcd.setCursor(13, 3);
lcd.write(byte(0));
if (temperatureC == DEVICE_DISCONNECTED_C) {
if (temperatureC == DEVICE_DISCONNECTED_C)
{
lcd.print("--");
} else {
}
else
{
lcd.print(temperatureC, 1);
lcd.print("C");
}
}
void updateTempDisplay(void* parameter) {
void updateTempDisplay(void *parameter)
{
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
lcd.setCursor(13, 3);
lcd.write(byte(0));
if (temperatureC == DEVICE_DISCONNECTED_C) {
if (temperatureC == DEVICE_DISCONNECTED_C)
{
lcd.print("--");
} else {
}
else
{
lcd.print(temperatureC, 1);
lcd.print("C");
}
vTaskDelete(NULL); // Delete the task when done
vTaskDelete(NULL); // Delete the task when done
}

View File

@ -6,7 +6,8 @@
#include "esp_task_wdt.h"
// Disable the watchdog timers
void disableWatchdogTimers() {
void disableWatchdogTimers()
{
esp_task_wdt_deinit();
TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCPU(0);
TaskHandle_t idle_1 = xTaskGetIdleTaskHandleForCPU(1);