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

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

?? 75x_tim.c

?? freertosV4.40 是一種small的嵌入式系統。利于嵌入式開好者入門學習嵌入式操作系統。通過對于源碼的學習可以很好的掌握freertos的運行機制。
?? C
?? 第 1 頁 / 共 4 頁
字號:
* Return         : The new state of TIM_IT(SET or RESET).
*******************************************************************************/
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, u16 TIM_IT)
{
  u16 TIM_IT_Check = 0;

  /* Calculates the pending bits to be checked */
  TIM_IT_Check = TIM_IT & TIM_IT_Clear_Mask;
  
  if((TIMx->ISR & TIM_IT_Check) != RESET )
  {
    return SET;
  }
  else
  {
    return RESET;
  }
}

/*******************************************************************************
* Function Name  : TIM_ClearITPendingBit
* Description    : Clears the TIM's interrupt pending bits.
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral.
*                  - TIM_IT: specifies the interrupt pending bit to clear.
*                    This parameter can be one of the following values:
*                         - TIM_IT_IC1: Input Capture 1 Interrupt 
*                         - TIM_IT_OC1: Output Compare 1 Interrupt 
*                         - TIM_IT_Update: Timer update Interrupt 
*                         - TIM_IT_GlobalUpdate: Timer global update Interrupt 
*                         - TIM_IT_IC2: Input Capture 2 Interrupt 
*                         - TIM_IT_OC2: Output Compare 2 Interrupt 
* Output         : None
* Return         : None
*******************************************************************************/
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, u16 TIM_IT)
{
  u16 TIM_IT_Clear = 0;

  /* Calculate the pending bits to be cleared */
  TIM_IT_Clear = TIM_IT & TIM_IT_Clear_Mask;

  /* Clear the pending bits */
  TIMx->ISR &= ~TIM_IT_Clear;
}

/*******************************************************************************
* Function Name  : OCM_ModuleConfig
* Description    : Output Compare Module configuration
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - TIM_InitStruct: pointer to a TIM_InitTypeDef structure that
*                  contains the configuration information for the specified TIM
*                  peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
static void OCM_ModuleConfig(TIM_TypeDef* TIMx, TIM_InitTypeDef* TIM_InitStruct)
{
  u16 TIM_OCControl = 0x0000;

  if(TIM_InitStruct->TIM_Mode == TIM_Mode_OCTiming)
  {
    TIM_OCControl = TIM_OCControl_OCTiming;
  }
  else
  {
    if((TIM_InitStruct->TIM_Mode == TIM_Mode_OCActive) || 
       (TIM_InitStruct->TIM_Mode == TIM_Mode_OPM_Active))
    {
      TIM_OCControl = TIM_OCControl_OCActive;
    }
    else
    {
      if(TIM_InitStruct->TIM_Mode == TIM_Mode_OCInactive)
      {
        TIM_OCControl = TIM_OCControl_OCInactive;
      }
      else
      {
      	 if((TIM_InitStruct->TIM_Mode == TIM_Mode_OCToggle) ||
            (TIM_InitStruct->TIM_Mode == TIM_Mode_OPM_Toggle))
        {
          TIM_OCControl = TIM_OCControl_OCToggle;
        }
        else
        {
          TIM_OCControl = TIM_OCControl_PWM;

        }
      }
    }
  }

  if(TIM_InitStruct->TIM_Channel == TIM_Channel_1)
  {
    /* Configure Channel 1 on Output Compare mode */
    TIMx->OMR1 &= TIM_OC1C_Mask;
    TIMx->OMR1 |= TIM_OCControl|TIM_OC1_Enable;
    TIMx->OMR1 |= TIM_PLD1_Set;
    TIMx->OCR1 = TIM_InitStruct->TIM_Pulse1;

    /* Set the OC1 wave polarity */
    if(TIM_InitStruct->TIM_Polarity1 == TIM_Polarity1_Low)
    {
      TIMx->OMR1 |= TIM_OC1P_Set;
    }
    else
    {
      TIMx->OMR1 &= TIM_OC1P_Reset;
    }
  }
  else
  {
    if(TIM_InitStruct->TIM_Channel == TIM_Channel_2)
    {
      /* Configure Channel 2 on Output Compare mode */
      TIMx->OMR1 &= TIM_OC2C_Mask;
      TIMx->OMR1 |= TIM_OCControl<<8|TIM_OC2_Enable;
      TIMx->OMR1 |= TIM_PLD2_Set;
      TIMx->OCR2 = TIM_InitStruct->TIM_Pulse2;

      /* Set the OCB wave polarity */
      if(TIM_InitStruct->TIM_Polarity2 == TIM_Polarity2_Low)
      {
        TIMx->OMR1 |= TIM_OC2P_Set;
      }
      else
      {
        TIMx->OMR1 &= TIM_OC2P_Reset;
      }
    }
     /* Configure Channel 1 and Channel 2 on Output Compare mode */
    else
    {
      TIMx->OMR1 &= TIM_OC1C_Mask & TIM_OC2C_Mask; 
      TIMx->OMR1 |= TIM_OCControl|(TIM_OCControl<<8)|TIM_OC1_Enable|TIM_OC2_Enable|
                   TIM_PLD1_Set|TIM_PLD2_Set;

      TIMx->OCR1 = TIM_InitStruct->TIM_Pulse1;
      TIMx->OCR2 = TIM_InitStruct->TIM_Pulse2;

      /* Set the OC1 wave polarity */
      if(TIM_InitStruct->TIM_Polarity1 == TIM_Polarity1_Low)
      {
        TIMx->OMR1 |= TIM_OC1P_Set;
      }
      else
      {
        TIMx->OMR1 &= TIM_OC1P_Reset;
      }

      /* Set the OC2 wave polarity */
      if(TIM_InitStruct->TIM_Polarity2 == TIM_Polarity2_Low)
      {
        TIMx->OMR1 |= TIM_OC2P_Set;
      }
      else
      {
        TIMx->OMR1 &= TIM_OC2P_Reset;
      }
    }
  }
}

/*******************************************************************************
* Function Name  : ICAP_ModuleConfig
* Description    : Input Capture Module configuration
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - TIM_InitStruct: pointer to a TIM_InitTypeDef structure that
*                  contains the configuration information for the specified TIM
*                  peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
static void ICAP_ModuleConfig(TIM_TypeDef* TIMx, TIM_InitTypeDef* TIM_InitStruct)
{
  if(TIM_InitStruct->TIM_Mode == TIM_Mode_PWMI)
  { /* PWM input mode configuration */
    TIMx->SCR |= TIM_TS_IC1_Set|TIM_SMS_RESETCLK_Set|TIM_SME_Set;

    /* Channel 1 and channel 2 input selection */
    if(TIM_InitStruct->TIM_PWMI_ICSelection == TIM_PWMI_ICSelection_TI1)
    {
      TIMx->IMCR &= TIM_IC1S_Reset;
      TIMx->IMCR |= TIM_IC2S_Set;
    }
    else
    {
      TIMx->IMCR |= TIM_IC1S_Set;
      TIMx->IMCR &= TIM_IC2S_Reset;
    }

    /* Channel polarity */
    if(TIM_InitStruct->TIM_PWMI_ICPolarity == TIM_PWMI_ICPolarity_Rising)
    {
      TIMx->IMCR &= TIM_IC1P_Reset;
      TIMx->IMCR |= TIM_IC2P_Set;
    }
    else
    {
      TIMx->IMCR |= TIM_IC1P_Set;
      TIMx->IMCR &= TIM_IC2P_Reset;
    }

    /* Input capture  Enable */
    TIMx->IMCR |= TIM_IC1_Enable |TIM_IC2_Enable;
  }
  else
  {
    if(TIM_InitStruct->TIM_Channel == TIM_Channel_1)
    {
      /* Input Capture 1 mode configuration */
      TIMx->SCR &= TIM_TriggerSelection_Mask & TIM_SlaveModeSelection_Mask;
      TIMx->SCR |= TIM_TS_IC1_Set|TIM_SMS_RESETCLK_Set|TIM_SME_Set;
      
      /* Channel 1 input selection */
      if(TIM_InitStruct->TIM_IC1Selection == TIM_IC1Selection_TI1)
      {
        TIMx->IMCR &= TIM_IC1S_Reset;
      }
      else
      {
        TIMx->IMCR |= TIM_IC1S_Set;
      }
      /* Channel 1 polarity */
      if(TIM_InitStruct->TIM_IC1Polarity == TIM_IC1Polarity_Rising)
      {
        TIMx->IMCR &= TIM_IC1P_Reset;
      }
      else
      {
        TIMx->IMCR |= TIM_IC1P_Set;
      }

      /* Input capture  Enable */
      TIMx->IMCR |= TIM_IC1_Enable;
    }
    else
    {
      /* Input Capture 2 mode configuration */
      TIMx->SCR &= (TIM_TriggerSelection_Mask & TIM_SlaveModeSelection_Mask);
      TIMx->SCR |= TIM_TS_IC2_Set|TIM_SMS_RESETCLK_Set|TIM_SME_Set;

      /* Channel 2 input selection */
      if(TIM_InitStruct->TIM_IC2Selection == TIM_IC2Selection_TI2)
      {
        TIMx->IMCR &= TIM_IC2S_Reset;
      }
      else
      {
        TIMx->IMCR |= TIM_IC2S_Set;
      }

      /* Channel 2 polarity */
      if(TIM_InitStruct->TIM_IC2Polarity == TIM_IC2Polarity_Rising)
      {
        TIMx->IMCR &= TIM_IC2P_Reset;
      }
      else
      {
        TIMx->IMCR |= TIM_IC2P_Set;
      }

      /* Input capture  Enable */
      TIMx->IMCR |= TIM_IC2_Enable;
    }
  }
}

/*******************************************************************************
* Function Name  : Encoder_ModeConfig
* Description    : Encoder Mode configuration
* Input          : - TIMx: where x can be 0, 1 or 2 to select the TIM peripheral
*                  - TIM_InitStruct: pointer to a TIM_InitTypeDef structure that
*                  contains the configuration information for the specified TIM
*                  peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
static void Encoder_ModeConfig(TIM_TypeDef* TIMx, TIM_InitTypeDef* TIM_InitStruct)
{
  /* Set Encoder mode */
  TIMx->SCR &= TIM_Encoder_Mask;
  
  if(TIM_InitStruct->TIM_Mode == TIM_Mode_Encoder1) 
  {
    TIMx->SCR |= TIM_Encoder1_Set;
  }
  else if (TIM_InitStruct->TIM_Mode == TIM_Mode_Encoder2)
  {
    TIMx->SCR |= TIM_Encoder2_Set;
  }
  else 
  {
    TIMx->SCR |= TIM_Encoder3_Set;
  }

  /* Channel 1 input selection */
  if(TIM_InitStruct->TIM_IC1Selection == TIM_IC1Selection_TI2)
  {
    TIMx->IMCR |= TIM_IC1S_Set;
  }
  else
  {
    TIMx->IMCR &= TIM_IC1S_Reset;
  }

   /* Channel 2 input selection */
   if(TIM_InitStruct->TIM_IC2Selection == TIM_IC2Selection_TI1)
   {
     TIMx->IMCR |= TIM_IC2S_Set;
   }
   else
   {
     TIMx->IMCR &= TIM_IC2S_Reset;
   }

   /* Channel 1 polarity */
   if(TIM_InitStruct->TIM_IC1Polarity == TIM_IC1Polarity_Falling)
   {
     TIMx->IMCR |= TIM_IC1P_Set;
   }
   else
   {
     TIMx->IMCR &= TIM_IC1P_Reset;
   }

   /* Channel 2 polarity */
   if(TIM_InitStruct->TIM_IC2Polarity == TIM_IC2Polarity_Falling)
   {
     TIMx->IMCR |= TIM_IC2P_Set;
   }
   else
   {
     TIMx->IMCR &= TIM_IC2P_Reset;
   }
}
/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本电影欧美片| 成人精品一区二区三区中文字幕| av一二三不卡影片| 国产日韩精品一区二区三区 | 日本视频中文字幕一区二区三区| 欧美日韩国产天堂| 老司机免费视频一区二区三区| 国产日本亚洲高清| 久久精品免视看| 欧美视频完全免费看| 国模冰冰炮一区二区| 国产三级欧美三级| 日韩免费观看高清完整版在线观看| 激情综合亚洲精品| 中文字幕一区在线观看视频| 欧美午夜电影网| 欧美精品丝袜久久久中文字幕| 国产精品中文字幕欧美| 一区二区三区日本| 久久老女人爱爱| 欧美精品123区| 日韩欧美美女一区二区三区| 2020国产精品自拍| 欧美日韩亚洲丝袜制服| 国产精品一区二区x88av| 成人免费电影视频| 色嗨嗨av一区二区三区| 欧美绝品在线观看成人午夜影视| 欧美二区在线观看| 久久久国产综合精品女国产盗摄| 国产精品视频yy9299一区| 91久久精品午夜一区二区| 欧美久久久久久蜜桃| 亚洲精品在线观看网站| 欧美一区二区三区视频在线| 色婷婷av一区二区三区之一色屋| 麻豆91在线看| 石原莉奈一区二区三区在线观看| 亚洲欧洲国产日韩| 香蕉加勒比综合久久| 亚洲欧洲色图综合| 亚洲成av人片观看| 国产毛片精品国产一区二区三区| 日本中文字幕一区二区视频| 国产精品2024| 在线免费不卡电影| 成人激情视频网站| 波多野结衣中文字幕一区二区三区 | 久久一区二区三区四区| 中文字幕一区二区不卡| 午夜电影一区二区三区| 亚洲午夜久久久久久久久电影院 | 麻豆精品蜜桃视频网站| 成人黄色电影在线| 91精品国产综合久久久蜜臀图片 | 亚洲bt欧美bt精品| 国产成人午夜片在线观看高清观看| 毛片一区二区三区| 一本大道av伊人久久综合| 日韩欧美一级二级三级久久久| 国产精品美女一区二区在线观看| 视频一区视频二区中文| 成人av综合在线| 欧美电视剧免费观看| 亚洲综合色丁香婷婷六月图片| 亚洲影院理伦片| 成人在线视频首页| 日韩精品一区二区三区视频在线观看| 伊人色综合久久天天人手人婷| 一区二区三区四区高清精品免费观看| 激情成人午夜视频| 欧美夫妻性生活| 一区二区三区免费网站| 成人va在线观看| 久久天天做天天爱综合色| 五月天久久比比资源色| 色综合亚洲欧洲| 在线欧美一区二区| 国产精品毛片大码女人| 精品一区二区三区久久久| 8x8x8国产精品| 一区二区三区免费网站| 92精品国产成人观看免费| 欧美日韩综合不卡| 综合在线观看色| 午夜成人免费电影| 色老汉av一区二区三区| 亚洲图片激情小说| 高清久久久久久| 欧美日韩一区在线观看| 亚洲视频一二区| 不卡一二三区首页| 国产欧美精品一区| 国产成人综合在线| 久久蜜桃一区二区| 国产精品 欧美精品| 2020国产精品自拍| 国产最新精品精品你懂的| 欧美巨大另类极品videosbest| 亚洲欧美色一区| 久久成人18免费观看| 制服丝袜av成人在线看| 日韩福利电影在线观看| 91麻豆精品国产自产在线 | 国产aⅴ综合色| 久久麻豆一区二区| 国产成人av一区二区三区在线 | 色综合久久久久综合体| 亚洲欧美日韩一区二区三区在线观看 | 久久精品99久久久| 日韩免费高清av| 国产一区二区三区综合| 久久久久久影视| voyeur盗摄精品| 成人欧美一区二区三区| 色综合天天在线| 亚洲图片欧美一区| 91精品国产高清一区二区三区蜜臀| 视频一区在线播放| 欧美videos中文字幕| 亚洲妇熟xx妇色黄| 欧美一区二区在线免费观看| 久久99深爱久久99精品| 精品少妇一区二区三区| 欧美酷刑日本凌虐凌虐| 精品视频全国免费看| 国产suv一区二区三区88区| 成人精品一区二区三区四区| 国产精品乡下勾搭老头1| 日本中文在线一区| 精品一区二区在线免费观看| 日产国产欧美视频一区精品| 一区二区三区高清在线| 婷婷夜色潮精品综合在线| 美女视频第一区二区三区免费观看网站 | 91论坛在线播放| 视频一区国产视频| 亚洲va欧美va天堂v国产综合| www成人在线观看| 在线一区二区三区四区五区| 看国产成人h片视频| 久久草av在线| 国产在线观看一区二区| 欧美日高清视频| 亚洲成人第一页| 欧美丰满美乳xxx高潮www| 亚洲欧美日韩中文字幕一区二区三区| 一区二区久久久| 亚洲精品国产视频| 视频一区二区不卡| 久久精品99久久久| 国产在线视频一区二区| 国产成人免费高清| 91国偷自产一区二区开放时间 | 精品国产一区a| 亚洲精品日日夜夜| 日韩亚洲欧美中文三级| 国产欧美久久久精品影院| 欧洲精品视频在线观看| 精品写真视频在线观看| 一级做a爱片久久| 26uuu另类欧美亚洲曰本| 一本大道久久精品懂色aⅴ| 裸体健美xxxx欧美裸体表演| 亚洲欧美影音先锋| 欧美精品一区二| 欧美亚洲综合在线| 豆国产96在线|亚洲| 日韩精品乱码免费| 亚洲人吸女人奶水| 欧美精品一区二区三区久久久| 欧美午夜一区二区三区| 国产不卡视频在线观看| 捆绑变态av一区二区三区| 一区二区三区欧美激情| 国产精品三级电影| 亚洲精品一区二区三区精华液| 欧美日韩一区二区不卡| 91网站最新地址| 国产激情一区二区三区桃花岛亚洲| 香港成人在线视频| 亚洲欧美日本韩国| 国产精品久久久久久久久搜平片 | 26uuu国产在线精品一区二区| 欧美综合一区二区| 成人久久18免费网站麻豆| 国产一区二区网址| 蜜臀va亚洲va欧美va天堂| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩一区二区高清| 欧美日韩精品一区二区三区 | 精品久久久久av影院 | 亚洲色图在线视频| 欧美高清在线一区二区| 94-欧美-setu| 不卡的看片网站| 丁香婷婷综合色啪| 国产精品一区二区免费不卡| 免费的成人av| 亚洲区小说区图片区qvod|