volatile unsigned int pulse_count = 0; void hall_sensor_ISR() // Interrupt on each magnet pulse pulse_count++; if (pulse_count >= PULSES_PER_LITER) // e.g., 450 pulses/L total_flow_m3 += 0.001; // add 1 liter pulse_count = 0;
// Step 2: Brine draw (pull salt water from brine tank) move_valve_to(BRINE_DRAW); delay_minutes(60); // typical Cillit: 45-90 min depending on model
// Step 6: Return to service move_valve_to(SERVICE);