     expire_at(time() + period());
     start();
   }
-#endif
-
-#if defined(USE_ISR_RESCHEDULE)
+#elif defined(USE_ISR_RESCHEDULE)
   virtual void on_expired()
   {
     run();
     reschedule();
   }
+#else
+#error "on_expired: not defined"
 #endif
 
   virtual void run()

  MEASURE("max uint32_t:", 1) trace << hex << UINT32_MAX << endl;

  // Measure time to print some standar floating point numbers
  MEASURE("floating point (pi):", 1) trace << M_PI << endl;
  MEASURE("floating point (e):", 1) trace << M_E << endl;
  MEASURE("floating point (log2e):", 1) trace << M_LOG2E << endl;

#include "Cosa/Periodic.hh"

// Schedule from interrupt with time or fixed period
#define USE_ISR_TIME_PERIOD
// #define USE_ISR_RESCHEDULE

class Pulse : public Periodic {
public:
