/**
  * @brief  Handles WWDG interrupt request.
  * @note   The Early Wakeup Interrupt (EWI) can be used if specific safety operations
  *         or data logging must be performed before the actual reset is generated.
  *         The EWI interrupt is enabled using __HAL_WWDG_ENABLE_IT() macro.
  *         When the downcounter reaches the value 0x40, and EWI interrupt is
  *         generated and the corresponding Interrupt Service Routine (ISR) can
  *         be used to trigger specific actions (such as communications or data
  *         logging), before resetting the device.
  * @param  hwwdg : pointer to a WWDG_HandleTypeDef structure that contains
  *              the configuration information for the specified WWDG module.
  * @retval None
  */
void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)
{
  /* Check if Early Wakeup Interrupt is enable */
  if(__HAL_WWDG_GET_IT_SOURCE(hwwdg, WWDG_IT_EWI) != RESET)
  {
    /* Check if WWDG Early Wakeup Interrupt occurred */
    if(__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET)
    {
      /* Early Wakeup callback */
      HAL_WWDG_WakeupCallback(hwwdg);

      /* Clear the WWDG Data Ready flag */
      __HAL_WWDG_CLEAR_IT(hwwdg, WWDG_FLAG_EWIF);
    }
  }
}
Ejemplo n.º 2
0
/**
  * @brief  Handles WWDG interrupt request.
  * @note   The Early Wakeup Interrupt (EWI) can be used if specific safety operations
  *         or data logging must be performed before the actual reset is generated.
  *         The EWI interrupt is enabled using __HAL_WWDG_ENABLE_IT() macro.
  *         When the downcounter reaches the value 0x40, and EWI interrupt is
  *         generated and the corresponding Interrupt Service Routine (ISR) can
  *         be used to trigger specific actions (such as communications or data
  *         logging), before resetting the device.
  * @param  hwwdg: pointer to a WWDG_HandleTypeDef structure that contains
  *              the configuration information for the specified WWDG module.
  * @retval None
  */
void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef *hwwdg)
{
    /* WWDG Early Wakeup Interrupt occurred */
    if(__HAL_WWDG_GET_FLAG(hwwdg, WWDG_FLAG_EWIF) != RESET)
    {
        /* Early Wakeup callback */
        HAL_WWDG_WakeupCallback(hwwdg);

        /* Change WWDG peripheral state */
        hwwdg->State = HAL_WWDG_STATE_READY;

        /* Clear the WWDG Data Ready flag */
        __HAL_WWDG_CLEAR_IT(hwwdg, WWDG_FLAG_EWIF);

        /* Process Unlocked */
        __HAL_UNLOCK(hwwdg);
    }
}