?? stm32f10x_tim.c
字號(hào):
u32 tmpccer = 0;
tmpccer = TIMx->CCER;
/* Set or Reset the CC3P Bit */
tmpccer &= CCER_CC3P_Mask;
tmpccer |= TIM_OCPolarity << 8;
TIMx->CCER = tmpccer;
}
/*******************************************************************************
* Function Name : TIM_OC4PolarityConfig
* Description : Configures the channel 4 polarity.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_OCPolarity: specifies the OC4 Polarity
* This parmeter can be one of the following values:
* - TIM_OCPolarity_High: Output Compare active high
* - TIM_OCPolarity_Low: Output Compare active low
* Output : None
* Return : None
*******************************************************************************/
void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity)
{
u32 tmpccer = 0;
tmpccer = TIMx->CCER;
/* Set or Reset the CC4P Bit */
tmpccer &= CCER_CC4P_Mask;
tmpccer |= TIM_OCPolarity << 12;
TIMx->CCER = tmpccer;
}
/*******************************************************************************
* Function Name : TIM_UpdateRequestConfig
* Description : Configures the Update Request Interrupt source.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_UpdateSource: specifies the Update source.
* This parameter can be one of the following values:
* - TIM_UpdateSource_Regular
* - TIM_UpdateSource_Global
* Output : None
* Return : None
*******************************************************************************/
void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, u8 TIM_UpdateSource)
{
u32 tmpcr1 = 0;
tmpcr1 = TIMx->CR1;
if (TIM_UpdateSource == TIM_UpdateSource_Regular)
{
/* Set the URS Bit */
tmpcr1 |= CR1_URS_Set;
}
else
{
/* Reset the URS Bit */
tmpcr1 &= CR1_URS_Reset;
}
TIMx->CR1 = tmpcr1;
}
/*******************************************************************************
* Function Name : TIM_SelectHallSensor
* Description : Enables or disables the TIMx抯 Hall sensor interface.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Newstate: new state of the TIMx Hall sensor interface.
* This parameter can be: ENABLE or DISABLE.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState Newstate)
{
if (Newstate != DISABLE)
{
/* Set the TI1S Bit */
TIMx->CR2 |= CR2_TI1S_Set;
}
else
{
/* Reset the TI1S Bit */
TIMx->CR2 &= CR2_TI1S_Reset;
}
}
/*******************************************************************************
* Function Name : TIM_SelectOnePulseMode
* Description : Enables or disables the TIMx抯 One Pulse Mode.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_OPMode: specifies the OPM Mode to be used.
* This parameter can be one of the following values:
* - TIM_OPMode_Single
* - TIM_OPMode_Repetitive
* Output : None
* Return : None
*******************************************************************************/
void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, u16 TIM_OPMode)
{
u32 tmpcr1 = 0;
tmpcr1 = TIMx->CR1;
/* Reset the OPM Bit */
tmpcr1 &= CR1_OPM_Mask;
/* Configure the OPM Mode */
tmpcr1 |= TIM_OPMode;
TIMx->CR1 = tmpcr1;
}
/*******************************************************************************
* Function Name : TIM_SelectOutputTrigger
* Description : Selects the TIM Trigger Output Mode.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_TRGOSource: specifies the Trigger Output source.
* This paramter can be one of the following values:
* - TIM_TRGOSource_Reset
* - TIM_TRGOSource_Enable
* - TIM_TRGOSource_Update
* - TIM_TRGOSource_OC1
* - TIM_TRGOSource_OC1Ref
* - TIM_TRGOSource_OC2Ref
* - TIM_TRGOSource_OC3Ref
* - TIM_TRGOSource_OC4Ref
* Output : None
* Return : None
*******************************************************************************/
void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, u16 TIM_TRGOSource)
{
u32 tmpcr2 = 0;
tmpcr2 = TIMx->CR2;
/* Reset the MMS Bits */
tmpcr2 &= CR2_MMS_Mask;
/* Select the TRGO source */
tmpcr2 |= TIM_TRGOSource;
TIMx->CR2 = tmpcr2;
}
/*******************************************************************************
* Function Name : TIM_SelectSlaveMode
* Description : Selects the TIM Slave Mode.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_SlaveMode: specifies the Timer Slave Mode.
* This paramter can be one of the following values:
* - TIM_SlaveMode_Reset
* - TIM_SlaveMode_Gated
* - TIM_SlaveMode_Trigger
* - TIM_SlaveMode_External1
* Output : None
* Return : None
*******************************************************************************/
void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, u16 TIM_SlaveMode)
{
u32 tmpsmcr = 0;
tmpsmcr = TIMx->SMCR;
/* Reset the SMS Bits */
tmpsmcr &= SMCR_SMS_Mask;
/* Select the Slave Mode */
tmpsmcr |= TIM_SlaveMode;
TIMx->SMCR = tmpsmcr;
}
/*******************************************************************************
* Function Name : TIM_SelectMasterSlaveMode
* Description : Sets or Resets the TIM Master/Slave Mode.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_MasterSlaveMode: specifies the Timer Master Slave Mode.
* This paramter can be one of the following values:
* - TIM_MasterSlaveMode_Enable: synchronization between the
* current timer and its slaves (through TRGO).
* - TIM_MasterSlaveMode_Disable: No action
* Output : None
* Return : None
*******************************************************************************/
void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, u16 TIM_MasterSlaveMode)
{
u32 tmpsmcr = 0;
tmpsmcr = TIMx->SMCR;
/* Set or Reset the MSM Bit */
tmpsmcr &= SMCR_MSM_Mask;
tmpsmcr |= TIM_MasterSlaveMode;
TIMx->SMCR = tmpsmcr;
}
/*******************************************************************************
* Function Name : TIM_SetAutoreload
* Description : Sets the TIM Autoreload Register value
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Autoreload: specifies the Autoreload register new value.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetAutoreload(TIM_TypeDef* TIMx, u16 Autoreload)
{
/* Set the Autoreload Register value */
TIMx->ARR = Autoreload;
}
/*******************************************************************************
* Function Name : TIM_SetCompare1
* Description : Sets the TIM Capture Compare1 Register value
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Compare1: specifies the Capture Compare1 register new value.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetCompare1(TIM_TypeDef* TIMx, u16 Compare1)
{
/* Set the Capture Compare1 Register value */
TIMx->CCR1 = Compare1;
}
/*******************************************************************************
* Function Name : TIM_SetCompare2
* Description : Sets the TIM Capture Compare2 Register value
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Compare2: specifies the Capture Compare2 register new value.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetCompare2(TIM_TypeDef* TIMx, u16 Compare2)
{
/* Set the Capture Compare2 Register value */
TIMx->CCR2 = Compare2;
}
/*******************************************************************************
* Function Name : TIM_SetCompare3
* Description : Sets the TIM Capture Compare3 Register value
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Compare3: specifies the Capture Compare3 register new value.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetCompare3(TIM_TypeDef* TIMx, u16 Compare3)
{
/* Set the Capture Compare3 Register value */
TIMx->CCR3 = Compare3;
}
/*******************************************************************************
* Function Name : TIM_SetCompare4
* Description : Sets the TIM Capture Compare4 Register value
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - Compare4: specifies the Capture Compare4 register new value.
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetCompare4(TIM_TypeDef* TIMx, u16 Compare4)
{
/* Set the Capture Compare4 Register value */
TIMx->CCR4 = Compare4;
}
/*******************************************************************************
* Function Name : TIM_SetIC1Prescaler
* Description : Sets the Input Capture 1 prescaler.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_IC1Prescaler: specifies the Input Capture1 prescaler
* new value.
* This parameter can be one of the following values:
* - TIM_ICPSC_DIV1: no prescaler
* - TIM_ICPSC_DIV2: capture is done once every 2 events
* - TIM_ICPSC_DIV4: capture is done once every 4 events
* - TIM_ICPSC_DIV8: capture is done once every 8 events
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, u8 TIM_IC1Prescaler)
{
u32 tmpccmr1 = 0;
tmpccmr1 = TIMx->CCMR1;
/* Reset the IC1PSC Bits */
tmpccmr1 &= CCMR_IC13PSC_Mask;
/* Set the IC1PSC value */
tmpccmr1 |= TIM_IC1Prescaler;
TIMx->CCMR1 = tmpccmr1;
}
/*******************************************************************************
* Function Name : TIM_SetIC2Prescaler
* Description : Sets the Input Capture 2 prescaler.
* Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
* - TIM_IC2Prescaler: specifies the Input Capture2 prescaler
* new value.
* This parameter can be one of the following values:
* - TIM_ICPSC_DIV1: no prescaler
* - TIM_ICPSC_DIV2: capture is done once every 2 events
* - TIM_ICPSC_DIV4: capture is done once every 4 events
* - TIM_ICPSC_DIV8: capture is done once every 8 events
* Output : None
* Return : None
*******************************************************************************/
void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, u8 TIM_IC2Prescaler)
{
u32 tmpccmr1 = 0;
tmpccmr1 = TIMx->CCMR1;
/* Reset the IC2PSC Bits */
tmpccmr1 &= CCMR_IC24PSC_Mask;
/* Set the IC2PSC value */
tmpccmr1 |= T
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -