Add helpers.ino, fix Servomatic.h and fix a typo
authorLukáš Jiřiště <jiriste@icpf.cas.cz>
Tue, 19 Nov 2024 14:29:30 +0000 (15:29 +0100)
committerLukáš Jiřiště <jiriste@icpf.cas.cz>
Tue, 19 Nov 2024 14:29:30 +0000 (15:29 +0100)
Makefile
Measurement.ino
Servomatic.h
Servomatic.ino
helpers.ino [new file with mode: 0644]

index 97a5eea0fa165f97adb48c33598141078e2fe5d7..cdf5fb4ba3795c70fc35f4611257c9dc0e092c23 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@ SRCS :=       Servomatic.ino          \
                Valve.ino                       \
                CellValve.ino           \
                Measurement.ino         \
+               helpers.ino                     \
 
 
 NAME := Servomatic
index 3107f4bad8a8f9e796da73e2a4e19c8a2de7c173..01259d237fd39813f7d98f6c468bceebfb53a6a6 100644 (file)
@@ -77,7 +77,7 @@ int   Measurement::wait_for_equilibrium(float threshold = 0.01)
        while (m_size < 20 || threshold < calc_equilibrium_dist())
        {
                get_measurement();
-               if (interuptable_delay(m_interval_ms))
+               if (interruptable_delay(m_interval_ms))
                        return (1);
        }
        return (0);
index 763cd4c5e58028b5fd98cf4b1c9d3ce822c325f3..c371f8018e6ede0c54035fa6f9d44d15240d5a57 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef SERVOMATIC_H
 # define SERVOMATIC_H
 
-int    interuptable_delay(unsigned long ms);
+extern volatile int    interrupt_happened;
+
+int            interruptable_delay(unsigned long ms);
+void   signal_going_to_sleep();
+void   sleep();
 
 #endif // SERVOMATIC_H
index a1d97da19066047a6857b2330d2a575dbe6c0dbf..688b007957e002c006a5ac09db2722ec7e968d82 100644 (file)
@@ -1,3 +1,4 @@
+#include "Servomatic.h"
 #include "PressureSensor.h"
 #include "Valve.h"
 #include "CellValve.h"
@@ -15,47 +16,6 @@ static const int     CELL_VALVE_PIN = 10;
 static const int       PRESSURE_SENSOR_VALVE_PIN = 11;
 static const int       VACUUM_VALVE_PIN = 12;
 
-static volatile int    interrupt_happened{0};
-
-void   interrupt_routine()
-{
-       interrupt_happened = 1;
-}
-
-int    interruptable_delay(unsigned long ms)
-{
-       const unsigned int      start_time{millis()};
-
-       while (ms > millis() - start_time)
-               if (interrupt_happened == 1)
-                       return (1);
-       return (0);
-}
-
-void   signal_going_to_sleep()
-{
-       delay(300);
-       digitalWrite(SWITCH_PIN, HIGH);
-       pinMode(SWITCH_PIN, OUTPUT);
-       delay(100);
-       pinMode(SWITCH_PIN, INPUT);
-}
-
-void   sleep()
-{
-       noInterrupts();
-       if (digitalRead(SWITCH_PIN) == LOW)
-       {
-               set_sleep_mode(SLEEP_MODE_PWR_DOWN);
-               sleep_enable();
-               interrupts();
-               sleep_cpu();
-               sleep_disable();
-       }
-       else
-               interrupts();
-}
-
 void   main_loop()
 {
        PressureSensor  sensor_1{PRESSURE_SENSOR1_PIN, 10};
diff --git a/helpers.ino b/helpers.ino
new file mode 100644 (file)
index 0000000..30c1ec8
--- /dev/null
@@ -0,0 +1,43 @@
+#include "Servomatic.h"
+
+volatile int   interrupt_happened{0};
+
+static void    interrupt_routine()
+{
+       interrupt_happened = 1;
+}
+
+int    interruptable_delay(unsigned long ms)
+{
+       const unsigned int      start_time{millis()};
+
+       while (ms > millis() - start_time)
+               if (interrupt_happened == 1)
+                       return (1);
+       return (0);
+}
+
+void   signal_going_to_sleep()
+{
+       delay(300);
+       digitalWrite(SWITCH_PIN, HIGH);
+       pinMode(SWITCH_PIN, OUTPUT);
+       delay(100);
+       pinMode(SWITCH_PIN, INPUT);
+}
+
+void   sleep()
+{
+       noInterrupts();
+       if (digitalRead(SWITCH_PIN) == LOW)
+       {
+               set_sleep_mode(SLEEP_MODE_PWR_DOWN);
+               sleep_enable();
+               interrupts();
+               sleep_cpu();
+               sleep_disable();
+       }
+       else
+               interrupts();
+}
+