AC52系列外部中断使用说明文档
📎 原始文档:https://www.kdocs.cn/l/cn3M1QZ4ydHJ AC52 系列外部中断使用说明文档
目 录
TOC \o "1-3" \h \u HYPERLINK \l _Toc17001 一、功能说明 PAGEREF _Toc17001 \h 2
HYPERLINK \l _Toc31147 二、配置步骤 PAGEREF _Toc31147 \h 2
HYPERLINK \l _Toc15156 三、注意事项 PAGEREF _Toc15156 \h 5
一、功能说明
AC52 所有版本在使用外部中断功能时,均可参照该文档步骤进行配置。该文档测试版本为AC52 V1.1.6版本。
二、配置步骤
在AC52 V1.1.6版本SDK上,添加如下.c文件:
EMBED Package
在port_waked_up.h里面加上如图所示部分:
打开out_interrupt.c文件,结合实际情况修改如图所示对应引脚。这里事件0,事件1和事件9(也就是EVENT_IO_0,EVENT_IO_1,EVENT_IO_2)可以使用任意普通IO,通过IOMC2对应寄存器位置设置输入映射过来,而FILEP_PORT宏定义的管脚负责翻转电平,用于触发中断。
在应用层调用out_interrupt_test()
连接翻转电平管脚与外部中断事件设置的触发管脚,之后出现如图所示打印则代表正常触发中断:
out_interrupt_test()函数:
中断服务函数自行添加处理:
三、注意事项
参照用户手册可以得知,外部中断源有17个。其中,事件0,事件1和事件9(也就是EVENT_IO_0,EVENT_IO_1,EVENT_IO_2)可以通过IMOC2配置映射使用任意普通IO。
除了上述说明的事件0,事件1和事件9以外,其他均是硬件IO作为中断源,需要找到硬件对应的IO口进行设置。
外部中断相关寄存器,结合用户手册查看相关寄存器。若上述配置完之后并没有触发中断,可以将寄存器值打印出来查看,其中WKUP_CON0用于使能中断,WKUP_CON1负责设置边沿触发的极性。

IOMC2配置选择管脚,如下:
若配置后,管脚没进中断事件,则可以通过打印IOMC2的值来验证与配置的值是否相符。
常见问题:
- .用EVENT_IO_0,EVENT_IO_1,EVENT_IO_2映射过去的普通IO口注册做外部中断口,某个IO口通过映射注册做外部中断时提示如下:

可能原因需要排查屏驱动是否开了TE,导致该外部中断EVENT_IO_0,或EVENT_IO_1或EVENT_IO_2)映射方式已被注册过。
2. 假如EVENT_IO_0,EVENT_IO_1,EVENT_IO_2三种任意IO口映射做外部中断的方式都已被注册完毕,还想使用外部中断口,则需要考虑本身是外部中断的硬件口。如下这些均是硬件中断口,需要对照芯片规格书确认本身IO口是否为硬件中断口。 
杰理科技 2024.03.08