📄 91x_mc.c
字号:
*******************************************************************************/
void MC_SetDeadTime(u16 MC_DeadTime)
{
/* Set the dead time Register value */
MC->DTG = MC_DeadTime;
}
/*******************************************************************************
* Function Name : MC_SetTachoCompare
* Description : Sets the MC Tacho Compare Register value.
* Input : MC_Compare: MC Tacho compare new value.
* Output : None
* Return : None
*******************************************************************************/
void MC_SetTachoCompare(u8 MC_Compare)
{
/* Sets the Tacho Compare Register value */
MC->TCMP = MC_Compare;
}
/*******************************************************************************
* Function Name : MC_EmergencyCmd
* Description : Enables or disables the MC emergency feauture.
* Input : Newstate: new state of the MC peripheral Emergency.
* This parameter can be: ENABLE or DISABLE.
* Output : None
* Return : None
*******************************************************************************/
void MC_EmergencyCmd(FunctionalState NewState)
{
if(NewState == ENABLE)
{
/* Reset the DISEST Bit in the PCR1 Register to enable the emergency stop input */
MC->PCR1 &= MC_DISEST_Reset;
}
else
{
/* Set the DISEST Bit in the PCR1 Register to disable the emergency stop input */
MC->PCR1 |= MC_DISEST_Reset;
}
}
/*******************************************************************************
* Function Name : MC_EmergencyClear
* Description : Clears the MC Emergency Register.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void MC_EmergencyClear(void)
{
/* Force PWM outputs in safe state (All OFF) */
MC->OPR |= MC_ODS_Set;
/* Clear EST bit */
MC->ESC = MC_ESC_Clear;
/* Re-enable protection */
MC->ESC = 0;
/* Enables the Outputs */
MC->OPR &= MC_ODS_Reset;
}
/*******************************************************************************
* Function Name : MC_GetPeriod
* Description : Gets the MC period value.
* Input : None
* Output : None
* Return : MC period value.
*******************************************************************************/
u16 MC_GetPeriod(void)
{
/* Return the PWM signal period value */
return MC->CMP0;
}
/*******************************************************************************
* Function Name : MC_GetPulseU
* Description : Gets the MC pulse U value.
* Input : None
* Output : None
* Return : MC pulse U value.
*******************************************************************************/
u16 MC_GetPulseU(void)
{
/* Return the PWM pulse U Register value */
return MC->CMPU;
}
/*******************************************************************************
* Function Name : MC_GetPulseV
* Description : Gets the MC pulse V value.
* Input : None
* Output : None
* Return : MC pulse V value.
*******************************************************************************/
u16 MC_GetPulseV(void)
{
/* Return the PWM pulse V Register value */
return MC->CMPV;
}
/*******************************************************************************
* Function Name : MC_GetPulseW
* Description : Gets the MC pulse W value.
* Input : None
* Output : None
* Return : MC pulse W value.
*******************************************************************************/
u16 MC_GetPulseW(void)
{
/* Return the PWM pulse W Register value */
return MC->CMPW;
}
/*******************************************************************************
* Function Name : MC_GetTachoCapture
* Description : Gets the MC Tacho period value.
* Input : None
* Output : None
* Return : MC Tacho capture value.
*******************************************************************************/
u16 MC_GetTachoCapture(void)
{
/* Return the Tacho Capture Register value */
return MC->TCPT;
}
/*******************************************************************************
* Function Name : MC_ClearOnTachoCapture
* Description : Enables or disables the the Clear on capture of tacho counter.
* Input : Newstate: new state of the CCPT bit.
* This parameter can be: ENABLE or DISABLE.
* Output : None
* Return : None
*******************************************************************************/
void MC_ClearOnTachoCapture(FunctionalState NewState)
{
if(NewState == ENABLE)
{
/* Enable the Clear on capture of tacho counter */
MC->PCR1 |= MC_CCPT_Set;
}
else
{
/* Disable the Clear on capture of tacho counter */
MC->PCR1 &= MC_CCPT_Reset;
}
}
/*******************************************************************************
* Function Name : MC_ForceDataTransfer
* Description : Sets the MC Outputs default states.
* Input : MC_ForcedData: MC outputs new states.
* Output : None
* Return : None
*******************************************************************************/
void MC_ForceDataTransfer(u8 MC_ForcedData)
{
/* Set the MC PWM Forced State */
MC->OPR |= MC_ODS_Set;
MC->OPR = (MC->OPR & MC_OPR_Mask) | MC_ForcedData;
}
/*******************************************************************************
* Function Name : MC_PreloadConfig
* Description : Enables the Software Data Transfer.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void MC_SoftwarePreloadConfig(void)
{
/* Set the SDT: Software Data Transfer bit */
MC->PCR2 |= MC_SDT_Set;
}
/*******************************************************************************
* Function Name : MC_SoftwareTachoCapture
* Description : Enables the Software Tacho Capture.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void MC_SoftwareTachoCapture(void)
{
/* Set the STC: Software Tacho Capture bit */
MC->PCR1 |= MC_STC_Set;
}
/*******************************************************************************
* Function Name : MC_GetCountingStatus
* Description : Checks whether the PWM Counter is counting Up or Down.
* Input : None
* Output : None
* Return : The new state of the PWM Counter(DOWN or UP).
*******************************************************************************/
CountingStatus MC_GetCountingStatus(void)
{
if((MC->PCR0 & MC_UDCS_Mask) != DOWN)
{
return UP;
}
else
{
return DOWN;
}
}
/*******************************************************************************
* Function Name : MC_GetFlagStatus
* Description : Checks whether the specified MC flag is set or not.
* Input : MC_FLAG: specifies the flag to check.
* This parameter can be one of the following values:
* - MC_FLAG_CMPW: Compare W Flag.
* - MC_FLAG_CMPV: Compare V Flag.
* - MC_FLAG_CMPU: Compare U Flag.
* - MC_FLAG_ZPC: Zero of PWM counter Flag.
* - MC_FLAG_ADT: Automatic Data Transfer Flag.
* - MC_FLAG_OTC: Overflow of Tacho counter Flag.
* - MC_FLAG_CPT: Capture of Tacho counter Flag.
* - MC_FLAG_CM0: Compare 0 Flag.
* - MC_FLAG_EST: Emergency Stop Flag.
* Output : None
* Return : The new state of the MC_FLAG(SET or RESET).
*******************************************************************************/
FlagStatus MC_GetFlagStatus(u16 MC_FLAG)
{
if((MC->IPR & MC_FLAG) != RESET)
{
return SET;
}
else
{
return RESET;
}
}
/*******************************************************************************
* Function Name : MC_ClearFlag
* Description : Clears the MC抯 pending flags.
* Input : MC_FLAG: specifies the flag to clear.
* This parameter can be any combination of the following values:
* - MC_FLAG_CMPW: Compare W Flag.
* - MC_FLAG_CMPV: Compare V Flag.
* - MC_FLAG_CMPU: Compare U Flag.
* - MC_FLAG_ZPC: Zero of PWM counter Flag.
* - MC_FLAG_ADT: Automatic Data Transfer Flag.
* - MC_FLAG_OTC: Overflow of Tacho counter Flag.
* - MC_FLAG_CPT: Capture of Tacho counter Flag.
* - MC_FLAG_CM0: Compare 0 Flag.
* Output : None
* Return : None
*******************************************************************************/
void MC_ClearFlag(u16 MC_FLAG)
{
/* Clear the corresponding Flag */
MC->IPR &= ~MC_FLAG;
}
/*******************************************************************************
* Function Name : MC_GetITStatus
* Description : Checks whether the MC interrupt has occurred or not.
* Input : MC_IT: specifies the MC interrupt source to check.
* This parameter can be one of the following values:
* - MC_IT_CMPW: Compare W Interrupt.
* - MC_IT_CMPV: Compare V Interrupt.
* - MC_IT_CMPU: Compare U Interrupt.
* - MC_IT_ZPC: Zero of PWM counter Interrupt.
* - MC_IT_ADT: Automatic Data Transfer Interrupt.
* - MC_IT_OTC: Overflow of Tacho counter Interrupt.
* - MC_IT_CPT: Capture of Tacho counter Interrupt.
* - MC_IT_CM0: Compare 0 Interrupt.
* Output : None
* Return : The new state of the MC_IT(SET or RESET).
*******************************************************************************/
ITStatus MC_GetITStatus(u16 MC_IT)
{
if((MC->IPR & MC_IT) && (MC->IMR & MC_IT))
{
return SET;
}
else
{
return RESET;
}
}
/*******************************************************************************
* Function Name : MC_ClearITPendingBit
* Description : Clears the IMC's interrupt pending bits.
* Input : MC_IT: specifies the pending bit to clear.
* This parameter can be any combination of the following values:
* - MC_IT_CMPW: Compare W Interrupt.
* - MC_IT_CMPV: Compare V Interrupt.
* - MC_IT_CMPU: Compare U Interrupt.
* - MC_IT_ZPC: Zero of PWM counter Interrupt.
* - MC_IT_ADT: Automatic Data Transfer Interrupt.
* - MC_IT_OTC: Overflow of Tacho counter Interrupt.
* - MC_IT_CPT: Capture of Tacho counter Interrupt.
* - MC_IT_CM0: Compare 0 Interrupt.
* Output : None
* Return : None
*******************************************************************************/
void MC_ClearITPendingBit(u16 MC_IT)
{
/* Clear the corresponding interrupt pending bit */
MC->IPR &= ~MC_IT;
}
/******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -