uses interface StopModeControl;
#ifdef ENABLE_STOP_MODE
uses interface RV8564 as RTC;
+ uses interface HplDS2782;
+ uses interface StdControl as DS2782Control;
+ uses interface Boot;
#endif
}
command error_t Init.init()
{
error_t ok = SUCCESS;
-
+
ok = call M16c62pControl.init();
-#ifdef ENABLE_STOP_MODE
- call StopModeControl.allowStopMode(true);
- // Activate the RTC and set it to output 1024 tics on the CLKOUT pin.
- call RTC.on();
- call RTC.enableCLKOUT();
- call RTC.writeRegister(RV8564_CLKF, 0x81);
-#else
+
call StopModeControl.allowStopMode(false);
-#endif
+
// Init the M16c/62p to run at 10MHz.
ok = ecombine (ok, call M16c62pControl.defaultSystemClock(MCU_SPEED_10MHz));
return SUCCESS;
}
+
+
#ifdef ENABLE_STOP_MODE
+ task void stopDS2782()
+ {
+ call DS2782Control.stop();
+ }
+ // The Boot event is needed so we can be sure that all underlying components
+ // have been initialized, for example the I2C resource.
+ event void Boot.booted()
+ {
+ call StopModeControl.allowStopMode(true);
+ // Activate the RTC and set it to output 1024 tics on the CLKOUT pin
+ call DS2782Control.start();
+ call HplDS2782.allowSleep(true);
+ call RTC.on();
+ call RTC.enableCLKOUT();
+ call RTC.writeRegister(RV8564_CLKF, 0x81);
+ }
+
async event void RTC.fired() {}
async event void RTC.readRegisterDone(uint8_t val, uint8_t reg) {}
async event void RTC.writeRegisterDone(uint8_t reg) {}
+
+ async event void HplDS2782.setConfigDone(error_t error) {return; }
+ async event void HplDS2782.allowSleepDone( error_t error ) { post stopDS2782(); }
+ async event void HplDS2782.measureTemperatureDone( error_t error, uint16_t val ){ return; }
+ async event void HplDS2782.measureVoltageDone( error_t error, uint16_t val ){ return; }
+ async event void HplDS2782.measureCurrentDone( error_t error, uint16_t val ){ return; }
+ async event void HplDS2782.measureAccCurrentDone( error_t error, uint16_t val ){ return; }
+ async event void HplDS2782.setOffsetBiasDone( error_t error ){ return; }
+ async event void HplDS2782.setAccOffsetBiasDone(error_t error){ return; }
#endif
}