/******************************************************************************
* Copyright (C) 2017, Huada Semiconductor Co.,Ltd All rights reserved.
*
* This software is owned and published by:
* Huada Semiconductor Co.,Ltd ("HDSC").
*
* BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
* BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
*
* This software contains source code for use with HDSC
* components. This software is licensed by HDSC to be adapted only
* for use in systems utilizing HDSC components. HDSC shall not be
* responsible for misuse or illegal use of this software for devices not
* supported herein. HDSC is providing this software "AS IS" and will
* not be responsible for issues arising from incorrect user implementation
* of the software.
*
* Disclaimer:
* HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
* REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
* ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
* WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
* WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
* WARRANTY OF NONINFRINGEMENT.
* HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
* NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
* LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
* LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
* INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
* SAVINGS OR PROFITS,
* EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
* YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
* INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
* FROM, THE SOFTWARE.
*
* This software may be replicated in part or whole for the licensed use,
* with the restriction that this Disclaimer and Copyright notice must be
* included with each copy of this software, whether used in part or whole,
* at all times.
*/
/******************************************************************************/
/** \file adt.c
**
** Low Voltage Detect driver API.
** @link Lvd Group Some description @endlink
**
** - 2017-07-16 LiuHL First Version
**
******************************************************************************/
/******************************************************************************
* Include files
******************************************************************************/
#include "adt.h"
/**
******************************************************************************
** \addtogroup AdtGroup
******************************************************************************/
//@{
/******************************************************************************
* Local pre-processor symbols/macros ('#define')
******************************************************************************/
/******************************************************************************
* Global variable definitions (declared in header file with 'extern') *
******************************************************************************/
/******************************************************************************
* Local type definitions ('typedef')
******************************************************************************/
/******************************************************************************
* Local function prototypes ('static')
******************************************************************************/
/******************************************************************************
* Local variable definitions ('static')
******************************************************************************/
static func_ptr_t pfnAdtIrqCbk[3][16];
/*****************************************************************************
* Function implementation - global ('extern') and local ('static')
*****************************************************************************/
/**
* \brief
* 使能NVIC中ADT中断
*
* \param [in] enIrqn 中断号
*
* \retval 无
*/
#if 0
static void AdtEnableNvic(IRQn_Type enIrqn)
{
NVIC_ClearPendingIRQ(enIrqn);
NVIC_EnableIRQ(enIrqn);
NVIC_SetPriority(enIrqn, DDL_IRQ_LEVEL_DEFAULT);
}
#endif
/**
* \brief
* 除能NVIC中ADT中断
*
* \param [in] enIrqn 中断号
*
* \retval 无
*/
static void AdtDisableNvic(IRQn_Type enIrqn)
{
NVIC_ClearPendingIRQ(enIrqn);
NVIC_DisableIRQ(enIrqn);
NVIC_SetPriority(enIrqn, DDL_IRQ_LEVEL_DEFAULT);
}
/**
* \brief
* ADC中断服务程序
*
* \param [in] u8Param 未使用
*
* \retval 无
*/
void Adt_IRQHandler(uint8_t u8Param)
{
uint8_t u8Adt = u8Param - 4;
volatile M0P_ADT_TypeDef *pstcM0PAdt = (M0P_ADT_TypeDef *)((uint32_t)M0P_ADT0+0x400*u8Adt);
if (TRUE == pstcM0PAdt->IFR_f.CMAF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtCMAIrq])
{
pfnAdtIrqCbk[u8Adt][AdtCMAIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtCMAIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.CMBF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtCMBIrq])
{
pfnAdtIrqCbk[u8Adt][AdtCMBIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtCMBIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.CMCF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtCMCIrq])
{
pfnAdtIrqCbk[u8Adt][AdtCMCIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtCMCIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.CMDF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtCMDIrq])
{
pfnAdtIrqCbk[u8Adt][AdtCMDIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtCMDIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.OVFF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtOVFIrq])
{
pfnAdtIrqCbk[u8Adt][AdtOVFIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtOVFIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.UDFF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtUDFIrq])
{
pfnAdtIrqCbk[u8Adt][AdtUDFIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtUDFIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.DTEF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtDTEIrq])
{
pfnAdtIrqCbk[u8Adt][AdtDTEIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtDTEIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.SAMLF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtSAMLIrq])
{
pfnAdtIrqCbk[u8Adt][AdtSAMLIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtSAMLIrq);
}
if (TRUE == pstcM0PAdt->IFR_f.SAMHF)
{
if (NULL != pfnAdtIrqCbk[u8Adt][AdtSAMHIrq])
{
pfnAdtIrqCbk[u8Adt][AdtSAMHIrq]();
}
pstcM0PAdt->ICLR = ~(1<<AdtSAMHIrq);
}
}
/**
* \brief
* 配置中断
*
* \param [in] enAdtUnit ADV Timer通道选择(TIM4、TIM5、TIM6)
* \param [in] enAdtIrq 中断类型
* \param [in] bEn 中断使能
* \param [in] pfnIrqCalbak 回调函数指针
*
* \retval en_result_t Ok: 配置成功
* \retval en_result_t ErrorInvalidParameter: 无效参数
*/
en_result_t Adt_ConfigIrq(en_adt_unit_t enAdtUnit,
en_adt_irq_type_t enAdtIrq,
boolean_t bEn)
{
uint32_t u32Val;
volatile M0P_ADT_TypeDef *pstcM0PAdt = (M0P_ADT_TypeDef *)((uint32_t)M0P_ADT0+0x400*enAdtUnit);
if (AdTIM6 < enAdtUnit)
{
return ErrorInvalidParameter;
}
//pfnAdtIrqCbk[enAdtUnit][enAdtIrq] =
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
F005_Motor control_v0_华大FOC方案_华大MCU_华大FOC_华大MCU_ST无感FOC采样 (127个子文件)
HC32M14_pmsm_control.a 140KB
F005_Motor control_v0.1.Release.cspy.bat 2KB
HC32F005C6PA.Release.cspy.bat 2KB
HC32F005C6PA.board 218B
HC32F005C6UA.board 218B
adt.c 51KB
motor_control.c 39KB
clk.c 27KB
init_mcu.c 21KB
gpio.c 18KB
adc.c 18KB
interrupts.c 14KB
module_math.c 11KB
speed_set.c 9KB
ddl.c 9KB
cmd_set_pwm.c 9KB
user_interface.c 7KB
motor_timer.c 7KB
adc_sample.c 6KB
main.c 6KB
coordinate_transform.c 5KB
cmd_set_analog_io.c 5KB
system_hc32f005c6pa.c 4KB
debug_drives.c 3KB
F005_Motor control_v0.1.crun 351B
HC32F005C6PA.crun 351B
F005_Motor control_v0.1.3.dbgdt 12KB
HC32F005C6PA.dbgdt 4KB
F005_Motor control_v0.1.3.dep 23KB
F005_Motor control_v0.1.dni 1KB
HC32F005C6PA.dni 846B
F005_Motor control_v0.1.3.ewd 87KB
F005_Motor control_v0.1.3.ewp 56KB
F005_Motor control_v0.1.3.ewt 136KB
F005_Motor control_v0.1.3.eww 179B
FlashHC32F005.flash 320B
hc32f005c6pa.h 93KB
gpio.h 51KB
core_cm0plus.h 44KB
adt.h 35KB
adc.h 16KB
clk.h 12KB
motor_control.h 10KB
init_mcu.h 8KB
protection.h 8KB
ddl.h 8KB
base_types.h 7KB
user_interface.h 6KB
observer_bemf.h 6KB
filter.h 5KB
svpwm.h 5KB
pid.h 5KB
system_hc32f005c6pa.h 5KB
speed_set.h 4KB
coordinate_transform.h 4KB
brake.h 4KB
cmd_set_pwm.h 4KB
startup_control.h 4KB
interrupts.h 4KB
module_include.h 4KB
stop_control.h 4KB
module_math.h 3KB
dead_time_comp.h 3KB
adc_sample.h 3KB
ddl_device.h 3KB
motor_timer.h 3KB
cmd_set_analog_io.h 3KB
hardware_config.h 2KB
debug_drives.h 874B
hc32f005c6pa_ram.icf 1KB
hc32f005c6pa.icf 1KB
F005_Motor control_v0.1_Release.jlink 761B
hc32f005c6pa_release.jlink 761B
hc32f005c6pa_debug.jlink 761B
F005_Motor control_v0.1.pbd.linf 2KB
FlashHC32F005.mac 443B
FlashHC32F005.out 21KB
F005_Motor control_v0.1.pbd 711KB
adt.pbi 557KB
motor_control.pbi 533KB
init_mcu.pbi 527KB
clk.pbi 527KB
adc.pbi 524KB
gpio.pbi 521KB
interrupts.pbi 517KB
speed_set.pbi 512KB
ddl.pbi 512KB
adc_sample.pbi 511KB
motor_timer.pbi 510KB
cmd_set_pwm.pbi 510KB
debug_drives.pbi 510KB
main.pbi 508KB
cmd_set_analog_io.pbi 377KB
user_interface.pbi 376KB
system_hc32f005c6pa.pbi 342KB
module_math.pbi 89KB
coordinate_transform.pbi 87KB
startup_hc32f005c6pa.s 10KB
hc32f005c6pa.svd 402KB
F005_Motor control_v0.1.3.wsdt 10KB
共 127 条
- 1
- 2
心梓
- 粉丝: 818
- 资源: 8056
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页