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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 75x_tim.c

?? freertosV4.40 是一種small的嵌入式系統(tǒng)。利于嵌入式開好者入門學(xué)習(xí)嵌入式操作系統(tǒng)。通過對于源碼的學(xué)習(xí)可以很好的掌握freertos的運行機制。
?? C
?? 第 1 頁 / 共 4 頁
字號:

/*******************************************************************************
* Function Name  : TIM_PreloadConfig
* Description    : Enables or disables TIM peripheral Preload register on OCRx.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral.
*                  - TIM_Channel: specifies the TIM channel to be used.
*                    This parameter can be one of the following values:
*                         - TIM_Channel_1: TIM Channel 1 is used
*                         - TIM_Channel_2: TIM Channel 2 is used
*                         - TIM_Channel_ALL: TIM Channel 1and 2 are used
*                  - Newstate: new state of the TIMx peripheral Preload register
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_PreloadConfig(TIM_TypeDef *TIMx, u16 TIM_Channel, FunctionalState Newstate)
{
  if(Newstate == ENABLE)
  {
    switch (TIM_Channel)
    {
      case TIM_Channel_1:
      TIMx->OMR1 |= TIM_PLD1_Set;
      break;
   
      case TIM_Channel_2:
      TIMx->OMR1 |= TIM_PLD2_Set;
      break;

      case TIM_Channel_ALL:
      TIMx->OMR1 |= TIM_PLD1_Set | TIM_PLD2_Set;
      break;

      default:
      break;
   }
  }
  else
  {
    switch (TIM_Channel)
    {
      case TIM_Channel_1:
      TIMx->OMR1 &= TIM_PLD1_Reset;
      break;
   
      case TIM_Channel_2:
      TIMx->OMR1 &= TIM_PLD2_Reset;
      break;

      case TIM_Channel_ALL:
      TIMx->OMR1 &= TIM_PLD1_Reset & TIM_PLD2_Reset;
      break;

      default:
      break;
    }
  }  
}

/*******************************************************************************
* Function Name  : TIM_DMAConfig
* Description    : Configures the TIM0抯 DMA interface.
* Input          : - TIM_DMASources: specifies the DMA Request sources.
*                    This parameter can be any combination of the following values:
*                         - TIM_DMASource_OC1: Output Compare 1 DMA source
*                         - TIM_DMASource_OC2: Output Compare 2 DMA source
*                         - TIM_DMASource_IC1: Input Capture 1 DMA source
*                         - TIM_DMASource_IC2: Input Capture 2 DMA source
*                         - TIM_DMASource_Update: Timer Update DMA source
*                  - TIM_OCRMState: the state of output compare request mode.
*                    This parameter can be one of the following values:
*                         - TIM_OCRMState_Enable 
*                         - TIM_OCRMState_Disable 
*                  - TIM_DMABase:DMA Base address.
*                    This parameter can be one of the following values:
*                    TIM_DMABase_CR, TIM_DMABase_SCR, TIM_DMABase_IMCR,
*                    TIM_DMABase_OMR1, TIM_DMABase_RSR,
*                    TIM_DMABase_RER, TIM_DMABase_ISR, TIM_DMABase_CNT, 
*                    TIM_DMABase_PSC, TIM_DMABase_ARR, TIM_DMABase_OCR1, 
*                    TIM_DMABase_OCR2, TIM_DMABase_ICR1, TIM_DMABase_ICR2
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_DMAConfig(u16 TIM_DMASources, u16 TIM_OCRMState, u16 TIM_DMABase)
{
  /* Select the DMA requests */
  TIM0->RSR &= TIM_DMASources;

  /* Set the OCRM state */
  if(TIM_OCRMState == TIM_OCRMState_Enable)
  {
    TIM0->RSR |= TIM_OCRM_Set;
  }
  else
  {
    TIM0->RSR &= TIM_OCRM_Reset;
  }

  /* Set the DMA Base address */
  TIM0->CR &= TIM_DBASE_Mask;
  TIM0->CR |= TIM_DMABase;
}

/*******************************************************************************
* Function Name  : TIM_DMACmd
* Description    : Enables or disables the TIM0抯 DMA interface.
* Input          : - TIM_DMASources: specifies the DMA Request sources.
*                    This parameter can be any combination of the following values:
*                         - TIM_DMASource_OC1: Output Compare 1 DMA source
*                         - TIM_DMASource_OC2: Output Compare 2 DMA source
*                         - TIM_DMASource_IC1: Input Capture 1 DMA source
*                         - TIM_DMASource_IC2: Input Capture 2 DMA source
*                         - TIM_DMASource_Update: Timer Update DMA source
*                  - Newstate: new state of the DMA Request sources.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_DMACmd(u16 TIM_DMASources, FunctionalState Newstate)
{
  if(Newstate == ENABLE)
  {
    TIM0->RER |= TIM_DMASources;
  }
  else
  {
    TIM0->RER &= ~TIM_DMASources;
  }
}

/*******************************************************************************
* Function Name  : TIM_ClockSourceConfig
* Description    : Configures the TIM clock source.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral.
*                  - TIM_ClockSource: specifies the TIM clock source to be 
*                    selected.
*                    This parameter can be one of the following values:
*                         - TIM_ClockSource_Internal: CK_TIM internal clock
*                         - TIM_ClockSource_TI11: External input pin TI1 
*                           connected to IC1 channel.
*                         - TIM_ClockSource_TI12: External input pin TI1
*                           connected to IC2 channel.
*                         - TIM_ClockSource_TI22: External input pin TI2
*                           connected to IC2 channel.
*                         - TIM_ClockSource_TI21: External input pin TI2
*                           connected to IC1 channel.
*                  - TIM_ExtCLKEdge: specifies the External input signal edge.
*                    This parameter can be one of the following values:
*                         - TIM_ExtCLKEdge_Falling : Falling edge selected.
*                         - TIM_ExtCLKEdge_Rising : Rising edge selected.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_ClockSourceConfig(TIM_TypeDef *TIMx, u16 TIM_ClockSource,
                           u16 TIM_ExtCLKEdge)
{
  if(TIM_ClockSource == TIM_ClockSource_Internal)
  {
    /* CK_TIM is used as clock source */
    TIMx->SCR &= TIM_SME_Reset & TIM_SlaveModeSelection_Mask & TIM_TriggerSelection_Mask;
  }
  else
  /* Input Captures are used as TIM external clock */
  {
    TIMx->SCR &= TIM_SME_Reset & TIM_SlaveModeSelection_Mask & TIM_TriggerSelection_Mask;
    TIMx->SCR |= TIM_SMS_EXTCLK_Set | TIM_SME_Set;

    if((TIM_ClockSource == TIM_ClockSource_TI11) ||
      (TIM_ClockSource == TIM_ClockSource_TI21))
    /* Input Capture 1 is selected */
    {
     /* Input capture  Enable */
      TIMx->IMCR |= TIM_IC1_Enable;
      TIMx->SCR |= TIM_TS_IC1_Set;

      if(TIM_ExtCLKEdge == TIM_ExtCLKEdge_Falling)
      /* Set the corresponding polarity */
      {
        TIMx->IMCR |= TIM_IC1P_Set;
      }
      else
      {   
        TIMx->IMCR &= TIM_IC1P_Reset;
      }
      if(TIM_ClockSource == TIM_ClockSource_TI11)
      {
        /* External signal TI1 connected to IC1 channel */
        TIMx->IMCR &= TIM_IC1S_Reset;
      }
      else
      {
        /* External signal TI2 connected to IC1 channel */
        TIMx->IMCR |= TIM_IC1S_Set;
      }
    }
    else
    /* Input Capture 2 is selected */
    {
      /* Input capture  Enable */
      TIMx->IMCR |= TIM_IC2_Enable;
      TIMx->SCR |= TIM_TS_IC2_Set;

      if(TIM_ExtCLKEdge == TIM_ExtCLKEdge_Falling)
      /* Set the corresponding polarity */
      {
        TIMx->IMCR |= TIM_IC2P_Set;
      }
      else
      {
         TIMx->IMCR &= TIM_IC2P_Reset;
      }
      if(TIM_ClockSource == TIM_ClockSource_TI22)
      {
        /* External signal TI2 connected to IC2 channel */
        TIMx->IMCR &= TIM_IC2S_Reset;
      }
      else
      {
        /* External signal TI1 connected to IC2 channel */
        TIMx->IMCR |= TIM_IC2S_Set;
      }
    }
  }
}

/*******************************************************************************
* Function Name  : TIM_SetPrescaler
* Description    : Sets the TIM prescaler value.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - Prescaler: TIM prescaler new value.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_SetPrescaler(TIM_TypeDef* TIMx, u16 Prescaler)
{
  TIMx->PSC = Prescaler;
}

/*******************************************************************************
* Function Name  : TIM_SetPeriod
* Description    : Sets the TIM period value.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - Period: TIM period new value.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_SetPeriod(TIM_TypeDef* TIMx, u16 Period)
{
  TIMx->ARR = Period;
}

/*******************************************************************************
* Function Name  : TIM_SetPulse
* Description    : Sets the TIM pulse value.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - TIM_Channel: specifies the TIM channel to be used.
*                    This parameter can be one of the following values:
*                         - TIM_Channel_1: TIM Channel 1 is used
*                         - TIM_Channel_2: TIM Channel 2 is used
*                         - TIM_Channel_ALL: TIM Channel 1and 2 are used
*                  - Pulse: TIM pulse new value.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_SetPulse(TIM_TypeDef* TIMx, u16 TIM_Channel, u16 Pulse)
{
  /* Set Channel 1 pulse value */
  if(TIM_Channel == TIM_Channel_1)
  {
    TIMx->OCR1 = Pulse;
  }
  /* Set Channel 2 pulse value */
  else if(TIM_Channel == TIM_Channel_2)
  {
   TIMx->OCR2 = Pulse;
  }
  /* Set Channel 1 and Channel 2 pulse values */
  else if(TIM_Channel == TIM_Channel_ALL)
  {
    TIMx->OCR1 = Pulse;
    TIMx->OCR2 = Pulse;
  }
}

/*******************************************************************************
* Function Name  : TIM_GetICAP1
* Description    : Gets the Input Capture 1 value. 
* Input          : TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
* Output         : None
* Return         : Input Capture 1 Register value.
*******************************************************************************/
u16 TIM_GetICAP1(TIM_TypeDef *TIMx)
{
  return TIMx->ICR1;
}

/*******************************************************************************
* Function Name  : TIM_GetICAP2
* Description    : Gets the Input Capture 2 value.
* Input          : TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
* Output         : None
* Return         : Input Capture 2 Register value
*******************************************************************************/
u16 TIM_GetICAP2(TIM_TypeDef *TIMx)
{
  return TIMx->ICR2;
}

/*******************************************************************************
* Function Name  : TIM_GetPWMIPulse
* Description    : Gets the PWM Input pulse value.
* Input          : TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
* Output         : None
* Return         : Input Capture 2 Register value
*******************************************************************************/
u16 TIM_GetPWMIPulse(TIM_TypeDef *TIMx)
{
  return TIMx->ICR2;
}

/*******************************************************************************
* Function Name  : TIM_GetPWMIPeriod
* Description    : Gets the PWM Input period value.
* Input          : TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
* Output         : None
* Return         : Input Capture 1 Register value
*******************************************************************************/
u16 TIM_GetPWMIPeriod(TIM_TypeDef *TIMx)
{
  return TIMx->ICR1;
}

/*******************************************************************************
* Function Name  : TIM_DebugCmd
* Description    : Enables or disables the specified TIM peripheral Debug control.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - Newstate: new state of the TIMx Debug control.
                     This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九全国免费| 欧美一区二区福利在线| 日韩一区二区三区在线| 一区二区三区蜜桃| av在线这里只有精品| 欧美精品日韩一本| 一区二区中文字幕在线| 成人午夜在线视频| 亚洲精品一区二区精华| 国产精品视频在线看| 在线不卡的av| 亚洲综合一区二区| 成人免费精品视频| 中文字幕字幕中文在线中不卡视频| 国产一区二区在线看| 国产欧美一区二区精品仙草咪| 蜜臀久久99精品久久久久宅男| 6080国产精品一区二区| 日韩精品一级二级| 日韩亚洲欧美中文三级| 黑人精品欧美一区二区蜜桃| 欧美一级二级三级乱码| 久久66热偷产精品| 欧美激情在线观看视频免费| 成人精品高清在线| 亚洲一区二区三区四区在线免费观看| 在线视频中文字幕一区二区| 精品综合免费视频观看| 成人免费在线视频观看| 欧美日韩国产成人在线91| 国产精品一品视频| 亚洲影院理伦片| 久久免费国产精品| 欧美色男人天堂| 丁香激情综合国产| 秋霞国产午夜精品免费视频| 欧美va日韩va| 日本精品一区二区三区高清 | 欧美美女网站色| 国产精品一区二区三区乱码| 亚洲高清在线精品| 中文字幕一区二区三区色视频 | 亚洲一区二区三区小说| 国产欧美一区二区三区鸳鸯浴| 欧美精品v日韩精品v韩国精品v| 丁香亚洲综合激情啪啪综合| 免费看欧美女人艹b| 性做久久久久久免费观看| 3d动漫精品啪啪1区2区免费| 高清不卡一区二区在线| 免费视频最近日韩| 伊人一区二区三区| 中文一区二区在线观看| 日韩精品一区二区三区视频| 欧美日韩久久一区| 91麻豆.com| 99久久久精品| 国产福利一区二区三区在线视频| 久久精品99国产精品| 亚洲va韩国va欧美va精品| 亚洲免费av网站| 最新成人av在线| 日本一区二区免费在线观看视频| 精品国产区一区| 日韩一区二区三区视频在线观看| 911国产精品| 欧美伦理电影网| 欧美日韩精品一区二区天天拍小说 | 久久成人综合网| 日韩精品高清不卡| 视频一区在线播放| 午夜精品国产更新| 亚洲成人资源网| 亚洲成人一区二区在线观看| 亚洲一区在线视频| 亚洲一区二区三区爽爽爽爽爽| 樱桃视频在线观看一区| 亚洲午夜免费视频| 亚洲午夜久久久久久久久电影院| 亚洲乱码国产乱码精品精的特点| 自拍偷拍欧美精品| 亚洲精品久久7777| 天天影视涩香欲综合网 | 精品乱人伦一区二区三区| 欧美一区二区三区四区视频| 日韩欧美高清一区| 久久综合九色综合欧美98| 久久久国产精品不卡| 国产精品欧美久久久久一区二区 | 久久精品综合网| 中文字幕成人在线观看| 亚洲视频免费在线观看| 一级精品视频在线观看宜春院| 亚洲国产精品久久久男人的天堂| 日韩精品1区2区3区| 精品一区二区三区在线视频| 国产精品99久久久久久久女警| av在线播放一区二区三区| 在线欧美日韩精品| 欧美丰满一区二区免费视频| 日韩亚洲欧美一区二区三区| 国产视频视频一区| 亚洲一区二区三区在线播放| 日本中文字幕一区二区有限公司| 免费在线一区观看| 国产成人精品免费在线| 97精品国产97久久久久久久久久久久 | 色婷婷久久综合| 制服丝袜亚洲播放| 国产嫩草影院久久久久| 亚洲一区影音先锋| 激情久久五月天| 91免费国产在线| 欧美成人在线直播| 亚洲男人的天堂网| 久久精品免费观看| 偷拍一区二区三区四区| 欧美一级国产精品| 中日韩av电影| 亚洲chinese男男1069| 国产一区二区调教| 在线观看区一区二| 久久久综合视频| 亚洲一区二区不卡免费| 国产一区二区91| 欧美久久久久久久久久| 日本一区二区三区在线观看| 日韩成人av影视| 97aⅴ精品视频一二三区| 精品久久国产字幕高潮| 亚洲自拍偷拍网站| 岛国av在线一区| 精品福利二区三区| 舔着乳尖日韩一区| 91视视频在线观看入口直接观看www | 国产在线国偷精品产拍免费yy| 在线视频观看一区| 国产精品美女久久久久久久久 | 成人激情开心网| 日韩精品一区二区三区在线播放 | 伊人开心综合网| 国产宾馆实践打屁股91| 精品久久久三级丝袜| 天天亚洲美女在线视频| 色美美综合视频| 国产精品国产三级国产专播品爱网 | 亚洲黄色尤物视频| 成人精品免费看| 久久亚洲免费视频| 理论片日本一区| 欧美精品丝袜中出| 亚洲成国产人片在线观看| 91日韩精品一区| 国产精品久久久久久久蜜臀| 国产精品一级二级三级| 精品欧美一区二区久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩亚洲丝袜制服| 一片黄亚洲嫩模| 色94色欧美sute亚洲线路一久| 亚洲日本一区二区三区| av高清久久久| 亚洲欧美日韩国产综合| 七七婷婷婷婷精品国产| 亚洲精品免费在线| 91在线无精精品入口| 日本一区二区三区在线观看| 国产suv精品一区二区6| 国产亲近乱来精品视频| 国产成人免费在线观看| 中文字幕精品一区二区三区精品| 国产精品一二一区| 国产精品久久国产精麻豆99网站| 成人爽a毛片一区二区免费| 亚洲国产成人自拍| a4yy欧美一区二区三区| 亚洲精品免费看| 欧美日韩视频一区二区| 奇米四色…亚洲| 国产亚洲女人久久久久毛片| 懂色av一区二区在线播放| 亚洲私人影院在线观看| 欧美综合亚洲图片综合区| 亚洲123区在线观看| 日韩一区二区三区在线| 国产一区二区0| 国产精品白丝在线| 欧美午夜影院一区| 日本一不卡视频| 久久精品免视看| 色哟哟国产精品| 青椒成人免费视频| 国产亚洲一区二区三区在线观看| 不卡在线视频中文字幕| 91精品国产综合久久小美女| 亚洲妇女屁股眼交7| 日韩精品一区二区三区四区视频| 国产一区二区三区免费播放| 中文字幕日韩精品一区| 欧美日韩一本到|