Valve.ino \
CellValve.ino \
Measurement.ino \
+ helpers.ino \
NAME := Servomatic
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);
#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
+#include "Servomatic.h"
#include "PressureSensor.h"
#include "Valve.h"
#include "CellValve.h"
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};
--- /dev/null
+#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();
+}
+