the sleep mode doesn't get set immediately, and needs to be waited upon.
*/
int32_t _set_sleep_mode(const uint8_t mode);
+/**
+ * \brief Get the sleep mode for the device
+ *
+ * This function gets the sleep mode for the device.
+ *
+ * \return the current value of the sleep mode configuration bits
+ */
+int32_t _get_sleep_mode(void);
+
+
/**
* \brief Reset MCU
*/
if (ERR_NONE != _set_sleep_mode(mode))
return ERR_INVALID_ARG;
+ // wait for the mode set to actually take, per chip doc.
+ while(_get_sleep_mode() != mode);
+
_go_to_sleep();
return ERR_NONE;
return ERR_NONE;
}
+/**
+ * \brief Get the sleep mode for the device
+ */
+int32_t _get_sleep_mode()
+{
+ return hri_pm_read_SLEEPCFG_SLEEPMODE_bf(PM);
+}
+
/**
* \brief Set performance level
*/