rpxmljes 发表于 2025-7-19 23:08:30

求助,8H1K08T 外部中断异常触发 | 已搞定

Ai8H1K08T 外部中断异常触发好像是触摸导致的,
可是我代码里面没有一丝关于触摸的功能,应该是默认关闭了,
我也尝试给这两个TSCHEN1寄存器写0都不行,
我原本想用外部中断判断按键按一下然后led交替点亮一下的,
结果我还没按就在这抽搐了,难道是布板有问题?
可是我不用触摸功能应该随便布吧

ercircle 发表于 2025-7-19 23:36:05

建议上传代码原理图,另外视频黑的啥也看不到~

DebugLab 发表于 2025-7-20 08:09:12

请上传程序和原理图

rpxmljes 发表于 2025-7-20 11:09:41

请忽略我原理图中的一些错误,看我框中的部分,按键做外部中断,按下下降沿中断,然后led会交替点亮一下,就是按一下led1亮,再按一下led2亮

rpxmljes 发表于 2025-7-20 11:17:33

System_init.c
//========================================================================
//                           外部中断初始化
//========================================================================
void        Exti_config(void)
{
        NVIC_INT2_Init(ENABLE,NULL);                //中断使能, ENABLE/DISABLE; 无优先级
}

STC8G_H_Exit_Isr.c
//========================================================================
// 函数: INT2_ISR_Handler
// 描述: INT2中断函数.
// 参数: none.
// 返回: none.
// 版本: V1.0, 2020-09-23
//========================================================================
void INT2_ISR_Handler (void) interrupt INT2_VECTOR                //进中断时已经清除标志
{
        // TODO: 在此处添加用户代码
//        P02 = ~P02;
        delay_ms(10);
        if(INT2 == 0)
                Key = 1;
}

APP.c
void test(void)
{
//        seg_show_num(0,mseg,0);
        if(Key == 1)
        {
                Key = 0;
                led = !led;//交替点亮
        }
       
}

rpxmljes 发表于 2025-7-20 11:34:12

ercircle 发表于 2025-7-19 23:36
建议上传代码原理图,另外视频黑的啥也看不到~

已上传原理图和程序,大佬帮忙看看,现在重新上传了视频,应该不黑了

rpxmljes 发表于 2025-7-20 11:34:33

DebugLab 发表于 2025-7-20 08:09
请上传程序和原理图

ok,上传了

rpxmljes 发表于 2025-7-20 11:35:35

rpxmljes 发表于 2025-7-20 11:09
请忽略我原理图中的一些错误,看我框中的部分,按键做外部中断,按下下降沿中断,然后led会交替点亮一下, ...

4脚当时没留意要一个电容,我也试过飞线10-100nf都不行

DebugLab 发表于 2025-7-20 13:33:13

没找到P36的IO模式设置
IO高阻的话会受外部干扰
应设置为高阻并打开内部4K上拉(或 双向/开漏 写1 并打开内部4K上拉)

rpxmljes 发表于 2025-7-20 14:19:16

DebugLab 发表于 2025-7-20 13:33
没找到P36的IO模式设置
IO高阻的话会受外部干扰
应设置为高阻并打开内部4K上拉(或 双向/开漏 写1 并打开内 ...

感谢大佬的指点,没问题了{:lol:}
页: [1]
查看完整版本: 求助,8H1K08T 外部中断异常触发 | 已搞定