| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | /********************************* (C) РОТЕК *********************************** * @module  wdg * @file    wdg.c * @version 1.0.0 * @date    XX.XX.XXXX * $brief   External watchdog (pin PE11) ******************************************************************************* * @history     Version  Author         Comment * XX.XX.XXXX   1.0.0    Telenkov D.A.  First release. ******************************************************************************* */#include "stm32f4xx.h"  #include "wdg.h"#include "gpio.h"/**  * @brief    * @retval   */void WDG_Init(void){  //  GPIO_InitTypeDef GPIO_InitStructure;  NVIC_InitTypeDef          NVIC_InitStructure;  TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;   // RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13, ENABLE);    /* Port initialization done in "gpio_init" */  /* GPIO_InitStructure.GPIO_Pin = WDT_PIN;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;  GPIO_Init(GPIOE, &GPIO_InitStructure);*/    NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_TIM13_IRQn;  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x6;  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0;  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  NVIC_Init(&NVIC_InitStructure);  NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 2);    /* APB1 Timer clock is 60Mhz, configure timer clock to 10khz (1 update event per 100 us) */  TIM_TimeBaseStructure.TIM_Prescaler = 6000 - 1;  /* Configure timer period to 100ms */  TIM_TimeBaseStructure.TIM_Period = 1000;  TIM_TimeBaseStructure.TIM_ClockDivision = 0;  TIM_TimeBaseStructure.TIM_CounterMode	= TIM_CounterMode_Up;  TIM_TimeBaseInit(TIM13, &TIM_TimeBaseStructure);    TIM_Cmd(TIM13, ENABLE);  TIM_ITConfig(TIM13, TIM_IT_Update, ENABLE);}/**  * @brief  Дергаем пином (сброс внешнего WDT)  * @retval   */void TIM8_UP_TIM13_IRQHandler(void){  TIM_ClearITPendingBit(TIM13, TIM_IT_Update);  gpio_invert_output(_WDG);}/********************************* (C) РОТЕК **********************************/
 |