  * pin(D7). They may be in parasite power mode.
  *
  * Note that temperature is only read on an alarm. A conversion
- * request is issued every second. The request is boardcasted to all
+ * request is issued every 2 seconds. The request is boardcasted to all
  * connected devices (i.e. a single command is sent without rom
  * address).
   *

void 
Thermometer::on_alarm() 
{ 
  // Read and print temperature. Do not need reset and precense pulse
  read_scratchpad(false);
  trace << Watchdog::millis() << PSTR(":ALARM:") << *this << endl; 
}

// Support macro to create name strings in program memory for devices
#define THERMOMETER(name)			\
  const char name ## _PSTR[] PROGMEM = #name;	\
  Thermometer name(&owi, name ## _PSTR)

// The devices connected to the one-wire bus
THERMOMETER(outdoors);


void loop()
{
  // Turn the builtin led on while working
  ledPin.toggle();

#ifdef USE_RTC
  // Get the current time for logging
  rtc.get_time(now);
#endif

  // Issue a convert request and check for alarms
  DS18B20::convert_request(&owi, 12, true);
  owi.alarm_dispatch();

  // Turn the builtin led off and sleep
  ledPin.toggle();
  SLEEP(2);
}
