打印
[demo程序]

NV32 模拟比较器使用

[复制链接]
459|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanzhen654|  楼主 | 2020-3-31 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化ACMP模块
void ACMP_Init(ACMP_Type *pACMPx, ACMP_ConfigType *pConfig) 
{
    if(ACMP0 == pACMPx)
    {   
        /* 使能ACMP模块的总线时钟 */
        SIM->SCGC |= SIM_SCGC_ACMP0_MASK;

        /* 使能ACMP中断 */
        if(pConfig->sCtrlStatus.bits.bIntEn)
            NVIC_EnableIRQ(ACMP0_IRQn);
    }
    else
    {
        SIM->SCGC |= SIM_SCGC_ACMP1_MASK;
        if(pConfig->sCtrlStatus.bits.bIntEn)
            NVIC_EnableIRQ(ACMP1_IRQn);            
    }
    /*选择ACMP正输入和负输入,正输入和负输入引脚不同*/
    pACMPx->C0 = pConfig->sPinSelect.byte;
    ACMP_ConfigDAC(pACMPx, &pConfig->sDacSet );
    //pACMPx->C1 = pConfig->sDacSet.byte;
    pACMPx->C2 = pConfig->sPinEnable.byte;
    pACMPx->CS = pConfig->sCtrlStatus.byte;
}


使用特权

评论回复

相关帖子

沙发
hanzhen654|  楼主 | 2020-3-31 20:49 | 只看该作者
配置ACMP控制寄存器1
void ACMP_ConfigDAC(ACMP_Type *pACMPx, ACMP_DACType *pDACConfig) 
{
    pACMPx->C1 = pDACConfig->byte;  
}


使用特权

评论回复
板凳
hanzhen654|  楼主 | 2020-3-31 21:23 | 只看该作者
复位ACMP模块
void ACMP_DeInit(ACMP_Type *pACMPx) 
{
    if(ACMP0 == pACMPx)
    {   
        if(pACMPx->CS & ACMP_CS_ACIE_MASK)
            NVIC_DisableIRQ(ACMP0_IRQn);
    }
    else
    {
        if(pACMPx->CS & ACMP_CS_ACIE_MASK)
            NVIC_DisableIRQ(ACMP1_IRQn);            
    }
   
    pACMPx->CS = 0;
    pACMPx->C0 = 0;
    pACMPx->C1 = 0;
    pACMPx->C2 = 0;
   
    if(ACMP0 == pACMPx)
    {   
        SIM->SCGC &= ~SIM_SCGC_ACMP0_MASK;
    }
    else
    {
        SIM->SCGC &= ~SIM_SCGC_ACMP1_MASK;           
    }
}


使用特权

评论回复
地板
hanzhen654|  楼主 | 2020-3-31 21:25 | 只看该作者
设置ACMP回调函数,通过中断服务函数调用回调函数
void ACMP_SetCallback(ACMP_Type *pACMPx, ACMP_CallbackPtr pfnCallback)
{
    if(ACMP0 == pACMPx)
    {
        ACMP_Callback[0] = pfnCallback;
    }
    else
    {
        ACMP_Callback[1] = pfnCallback;
    }
}


使用特权

评论回复
5
hanzhen654|  楼主 | 2020-3-31 22:17 | 只看该作者
ACMP0 中断服务函数.
void ACMP0_Isr(void)
{
    if(ACMP_Callback[0])
    {
        ACMP_Callback[0]();             /*调用回调函数*/
    }
}


使用特权

评论回复
6
hanzhen654|  楼主 | 2020-3-31 22:25 | 只看该作者
ACMP1 中断服务函数
void ACMP1_Isr(void)
{
    if(ACMP_Callback[1])
    {
        ACMP_Callback[1]();             /* 调用回调函数*/
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝