大家好、
我在 P4IES 设置期间发现了一种奇怪的行为。 在初始化过程结束时、我通过以下方式设置 P4中断:
P4IFG &=~(BIT6);
P4IES |= BIT6;
P4IE |= BIT6;
在这些行之前进行了输入时的基本端口设置、并且禁用了编译器中的所有优化。 接下来、我在调试会话期间检查了 CCS 寄存器视图中的正确设置、一切看起来都正常(中断已启用、IES 位已设置为高/低检测)。 但是、当我在硬件上测试它时 、中断事件在端口上升沿或下降沿上产生、正如 IES 设置的那样。 我尝试修改值、但没有效果。 每次在上升沿执行中断。 意外地、当我通过以下方式仅更改行的顺序时、代码开始正常工作:
P4IES |= BIT6;
P4IFG &=~(BIT6);
P4IE |= BIT6;
现在、一切都正常、但当我尝试将订单更改为上一个订单时、IES 设置不再起作用。
所以、我的好奇问题是-为什么这条命令行指令会极大地改变端口中断边沿灵敏度的行为? 数据表中的任何位置都存在此问题、还是我做了一些错误?
提前感谢您对此行为的任何解释。