986507961 发表于 2024-5-27 12:21:27

STC8A比较器一直进中断

比较器正极接的100K和10K电阻进行分压,万用表测得P37引脚电压为2.2V,负极选择内部1.19V参考电压,按道理来说正极电压高于内部1.19V,为什么还会频繁进入比较中断,配置代码如下。


void STC8Ax_COMP_Config(void)
{
       
    CMPEXCFG = 0x00;
    CMPEXCFG &= ~0x03;                        //P3.7为CMP+输入脚
    CMPEXCFG |= 0x04;                           //内部1.19V参考电压为CMP-输入脚
    CMPCR2 = 0x00;
    CMPCR2 &= ~0x80;                            //比较器正向输出
    CMPCR2 &= ~0x40;                            //使能0.1us滤波
    CMPCR2 |= 0x08;                           //比较器结果经过8个去抖时钟后输出
    CMPCR1 = 0x00;
    CMPCR1 |= 0x10;                           //使能比较器下降沿中断
    CMPCR1 &= ~0x02;                            //禁止比较器输出
    CMPCR1 |= 0x80;                           //使能比较器模块
}

另外想问一下,STC下载软件中的允许低压复位是设置的什么

神农鼎 发表于 2024-5-27 12:52:32

用仿真功能来排查软件硬件错误在哪

仿真STC8,STC-USB Link1D支持STC32/STC8仿真及下载 !视频讲解 - 仿真/编译器/头文件 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)




仿真STC8系列MCU,用【一箭双雕之USB转双串口/全自动烧录器】 - 仿真/编译器/头文件 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

梁工 发表于 2024-5-27 16:12:14

1、初始化之前,是否有设置:P_SW2 |= 0x80;
2、P37(CPM+)引脚电压为2.2V明显比内部1.19V高,不会连续产生中断,
   如果连续产生中断说明你的信号有纹波,或者中断函数没有清除中断标志。


可以在比较器中断函数中取反一个IO来指示进入中断,示波器观察IO。
页: [1]
查看完整版本: STC8A比较器一直进中断