亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 91x_wdg.c

?? 最新版FreeRTOS, 包擴多種開發平臺的移植
?? C
字號:
/******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
* File Name          : 91x_wdg.c
* Author             : MCD Application Team
* Date First Issued  : 05/18/2006 : Version 1.0
* Description        : This file provides all the WDG software functions.
********************************************************************************
* History:
* 05/24/2006 : Version 1.1
* 05/18/2006 : Version 1.0
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "91x_wdg.h"
#include "91x_scu.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/


/* WDG End of Count interrupt Flag */
#define WDG_FLAG_EC  0x0001


/* WDG End of Count interrupt request */
#define WDG_IT_EC    0x0001



/* WDG Start/Stop counter */
#define WDG_Counter_Start  0x0002
#define WDG_Counter_Stop   0xFFFD


/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Registers reset value */
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/******************************************************************************
* Function Name  : WDG_DeInit
* Description    : Deinitializes the WDG peripheral registers to their default
*                  reset values.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_DeInit(void)
{

  SCU_APBPeriphReset(__WDG, ENABLE);  /*WDG peripheral under Reset */
  SCU_APBPeriphReset(__WDG, DISABLE);  /*WDG peripheral Reset off*/
  
}

/*******************************************************************************
* Function Name  : WDG_StructInit
* Description    : Fills the WDG_InitTypeDef structure member with its reset
*                  value.
* Input          : WDG_InitStruct : pointer to a WDG_InitTypeDef structure
*                  which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_StructInit(WDG_InitTypeDef *WDG_InitStruct)
{
  /* Select the Watchdog running mode*/
  WDG_InitStruct->WDG_Mode = WDG_Mode_Timer;

  /* Select the source clock */
  WDG_InitStruct-> WDG_ClockSource = WDG_ClockSource_Apb;

   /* Initialize Prescaler */
  WDG_InitStruct->WDG_Prescaler =0xFF;

  /* Initialize Preload */
  WDG_InitStruct->WDG_Preload =0xFFFF;


}

/*******************************************************************************
* Function Name  : WDG_Init
* Description    : Initializes WDG  peripheral according to the specified
*                  parameters in the WDG_InitStruct.
* Input          : WDG_InitStruct: pointer to a WDG_InitTypeDef structure that
*                  contains the configuration information for the WDG peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_Init(WDG_InitTypeDef* WDG_InitStruct)
{


 if(WDG_InitStruct->WDG_ClockSource == WDG_ClockSource_Apb)
  {
    /* Select The APB clock as clock source */
    WDG->CR &= WDG_ClockSource_Apb;
  }

  else
  {
    /* Select the RTC clock as source */
    WDG->CR |= WDG_ClockSource_Rtc ;
  }


  /* Configure WDG Prescaler register value */
  WDG->PR = WDG_InitStruct->WDG_Prescaler;

  /* Configure WDG Pre-load register value */
  WDG->VR = WDG_InitStruct->WDG_Preload ;


  if(WDG_InitStruct->WDG_Mode == WDG_Mode_Timer)
  {
    /* Select Timer mode */
    WDG->CR &= WDG_Mode_Timer;
  }
  else
  {
    /* Select WDG mode */
    WDG->CR |= WDG_Mode_Wdg ;
  }


}

/*******************************************************************************
* Function Name  : WDG_Cmd
* Description    : Enables or disables the WDG peripheral.
* Input          : NewState: new state of the WDG peripheral (Newstate can be
*                  ENABLE or DISABLE)
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_Cmd(FunctionalState NewState )
{
  if((WDG->CR & WDG_Mode_Wdg) == 0)
  {
    /* Timer mode */
    if(NewState == ENABLE)
    {
      /* Start timer by setting SC bit in Control register */
      WDG->CR |= WDG_Counter_Start;
    }
    else
    {
      /* Stop timer by clearning SC bit in Control register */
      WDG->CR &= WDG_Counter_Stop;
    }
  }
  else
  {
    /* Watchdog mode */
    if(NewState == ENABLE)
    {
      WDG->KR = WDG_KeyValue1;
      WDG->KR = WDG_KeyValue2;
    }
  }
}

/*******************************************************************************
* Function Name  : WDG_ITConfig
* Description    : Enables or disables the WDG End of Count(EC) interrupt.
* Input          : Newstate:  new state of the End of Count(EC) WDG interrupt.
*                  This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_ITConfig(FunctionalState NewState)
{
  if(NewState == ENABLE)
  {
    /* Enable the End of Count interrupt */
    WDG->MR |= WDG_IT_EC;
  }
  else
  {
    /* Disable the End of Count interrupt */
    WDG->MR &= ~WDG_IT_EC;
  }
}

/*******************************************************************************
* Function Name  : WDG_GetCounter
* Description    : Gets the WDG抯 current counter value.
* Input          : None
* Output         : None
* Return         : The WDG current counter value
*******************************************************************************/
u16 WDG_GetCounter(void)
{
   return WDG->CNT;
}




/*******************************************************************************
* Function Name  : WDG_GetITStatus
* Description    : Checks whether the WDG End of Count(EC) interrupt is occured or not.
* Input          : None
* Output         : None
* Return         : The new state of WDG_IT (SET or RESET).
*******************************************************************************/
ITStatus WDG_GetITStatus(void)
{
  if(((WDG->SR & WDG_IT_EC) != RESET )&&((WDG->MR & WDG_IT_EC) != RESET ))
  {
    return SET;
  }
  else
  {
    return RESET;
  }
}

/*******************************************************************************
* Function Name  : WDG_ClearITPendingBit
* Description    : Clears the WDG's End of Count(EC) interrupt pending bit.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_ClearITPendingBit(void)
{
 /* Clear the EC pending bit */
  WDG->SR &= ~WDG_IT_EC;

}

/*******************************************************************************
* Function Name  : WDG_ClearFlag
* Description    : Clears the WDG's End of Count(EC) Flag.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void WDG_ClearFlag(void)
{
 /* Clear the EC Flag */

  WDG->SR &= ~WDG_FLAG_EC;

}


/*******************************************************************************
* Function Name  : WDG_GetFlagStatus
* Description    : Checks whether the WDG End of Count(EC) flag is set or not.
* Input          : None
* Output         : None
* Return         : The new state of the WDG_FLAG (SET or RESET).
*******************************************************************************/
FlagStatus WDG_GetFlagStatus(void)
{
  if((WDG->SR & WDG_FLAG_EC) != RESET )
  {
    return SET;
  }
  else
  {
    return RESET;
  }
}



/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品动漫网站| 国产精品国产自产拍高清av | 欧美日韩午夜精品| 懂色中文一区二区在线播放| 久久99国产精品免费| 久久国产精品露脸对白| 九色综合国产一区二区三区| 精品一区二区三区久久久| 日韩精品乱码免费| 看片网站欧美日韩| 国产91综合一区在线观看| 国产精品18久久久久久久久| 国产精品99久久久久久久女警 | 国内一区二区视频| 成人性视频免费网站| 成人美女视频在线观看| av一二三不卡影片| 91黄色免费版| 日韩亚洲欧美成人一区| 亚洲精品一区二区三区香蕉| 久久综合一区二区| 中文字幕第一页久久| 亚洲摸摸操操av| 亚洲国产精品一区二区久久恐怖片| 亚洲成人免费观看| 国产在线视频一区二区| 91在线视频观看| 91麻豆精品国产91久久久使用方法 | 久久先锋影音av| 亚洲天堂2016| 免费视频最近日韩| 成人免费黄色在线| 欧美日韩成人一区| 亚洲国产精品av| 天堂蜜桃一区二区三区| 国产精品1区二区.| 欧美三区在线观看| 国产日韩欧美激情| 亚洲成人一区二区在线观看| 夫妻av一区二区| 欧美日韩综合不卡| 亚洲国产成人一区二区三区| 亚洲大片一区二区三区| 国产69精品久久久久毛片| 欧美精品1区2区3区| 日韩理论在线观看| 久久不见久久见中文字幕免费| 99re成人精品视频| 久久蜜桃香蕉精品一区二区三区| 亚洲日本韩国一区| 国产精品77777| 日韩欧美一区二区不卡| 亚洲国产精品精华液网站| 成人aaaa免费全部观看| 精品久久久网站| 亚洲成人激情av| 在线免费观看一区| 中文字幕亚洲一区二区av在线| 日韩高清电影一区| 欧美日韩综合在线| 一区二区不卡在线视频 午夜欧美不卡在| 国内成+人亚洲+欧美+综合在线 | 丰满亚洲少妇av| 日韩美女一区二区三区| 五月激情六月综合| 欧美在线观看一区| 一区二区三区中文字幕| 96av麻豆蜜桃一区二区| 亚洲欧洲在线观看av| 成人av网站免费| 欧美激情一区二区三区| 丁香婷婷综合五月| 国产丝袜欧美中文另类| 国产一区二区三区免费看| 欧美精品一区二区久久久| 蜜臀久久99精品久久久久宅男| 欧美午夜不卡视频| 亚洲1区2区3区视频| 91黄视频在线| 午夜精品久久久久久久蜜桃app| 91美女片黄在线观看| 亚洲在线一区二区三区| 欧美日韩国产高清一区二区| 亚洲在线视频免费观看| 欧美色区777第一页| 日韩av中文字幕一区二区| 91精品国产麻豆| 国内一区二区在线| 国产精品天天摸av网| 99久久精品免费看国产免费软件| 欧美国产亚洲另类动漫| 99久久99久久精品免费看蜜桃 | 欧美一区二区三区在线视频| 日本不卡视频在线观看| 久久蜜桃香蕉精品一区二区三区| 国产成人av电影在线观看| 最好看的中文字幕久久| 欧美日韩一区二区电影| 美女www一区二区| 国产日韩欧美综合在线| 色8久久精品久久久久久蜜| 午夜精品福利在线| 久久综合九色综合97婷婷| 成人av高清在线| 亚洲成av人片在线观看无码| 日韩精品一区二区三区中文不卡| 国产91精品一区二区麻豆网站| 一区二区久久久久久| 精品久久五月天| 在线区一区二视频| 国产精品白丝av| 亚洲国产日日夜夜| 国产校园另类小说区| 欧美另类一区二区三区| 久草这里只有精品视频| 亚洲免费伊人电影| 精品福利一区二区三区| 色综合色狠狠天天综合色| 免费成人在线观看视频| 亚洲精品自拍动漫在线| 精品国产一区二区三区久久久蜜月| av激情综合网| 老司机精品视频在线| 一区二区三区av电影| 欧美激情综合在线| 精品久久久久久久久久久久久久久久久 | 午夜精品久久久久影视| 国产精品久久午夜夜伦鲁鲁| 日韩精品影音先锋| 欧美三级视频在线| 91在线观看一区二区| 国产美女精品一区二区三区| 日本va欧美va欧美va精品| 亚洲一区二区在线观看视频 | 久久国产生活片100| 亚洲电影在线免费观看| 日韩理论电影院| 国产精品日产欧美久久久久| 欧美刺激脚交jootjob| 欧美三片在线视频观看| 91麻豆成人久久精品二区三区| 国产精品一二三区在线| 狠狠色丁香婷婷综合久久片| 天天色 色综合| 五月天激情小说综合| 亚洲狠狠爱一区二区三区| 亚洲婷婷在线视频| 亚洲精品中文在线| 一区二区三区色| 亚洲国产色一区| 日精品一区二区| 午夜久久久影院| 首页综合国产亚洲丝袜| 亚洲国产另类精品专区| 亚洲成人精品一区二区| 天堂久久久久va久久久久| 首页国产丝袜综合| 麻豆精品精品国产自在97香蕉| 日本亚洲免费观看| 久久草av在线| 国产jizzjizz一区二区| 不卡的电视剧免费网站有什么| 国产精品影视天天线| 成人美女视频在线观看| 91麻豆精品秘密| 91麻豆精品国产自产在线 | 一级女性全黄久久生活片免费| 亚洲精品乱码久久久久久| 亚洲综合免费观看高清完整版在线 | 亚洲欧美一区二区三区极速播放| 亚洲婷婷在线视频| 亚洲va欧美va人人爽| 久久99精品久久久久久国产越南 | 成人免费看视频| 在线亚洲欧美专区二区| 91精品在线一区二区| www国产亚洲精品久久麻豆| 中文字幕一区三区| 亚洲444eee在线观看| 国产精华液一区二区三区| 日本二三区不卡| 日韩亚洲欧美成人一区| 国产精品电影院| 蜜桃一区二区三区四区| 成人黄色综合网站| 欧美日韩黄视频| 日本一区二区三区四区在线视频| 亚洲欧美激情插| 另类欧美日韩国产在线| av高清久久久| 精品国产一区二区三区四区四 | 精品日韩一区二区| 中文字幕制服丝袜成人av| 亚欧色一区w666天堂| 国产精品一区二区黑丝| 欧美三级中文字| 中文字幕一区二区三区不卡 | 日日摸夜夜添夜夜添国产精品 | 国产99久久久精品| 欧美喷潮久久久xxxxx|