微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > cc1110的中断离奇现象

cc1110的中断离奇现象

时间:12-23 整理:3721RD 点击:

测试过程1:将cc1110的P0.4口设为输入中断,将P0的5,6,7任何一个端口设为输出,当将该输出io口拉高时,会一直进入P0的中断服务子程序,按我的理解,虽然4.5.6.7是同一个寄存器使能的中断,但设为输出的io口是不能够使得中断触发的,此为离奇之处;

测试过程2:作为比对,又将P0.0口设为输入中断,但当拉高P0的1.2.3输出口都不会触发中断

测试部分代码:

P0SEL&=~(0x10);
P0DIR&=~(0x10);

P2INP &=~(0x01<<5);
P0INP &=~(0x10);
/*Port 0 inputs 7 to 4 interrupt enable*/
PICTL |= 0x10;
/*Select falling edge on input gives interrupt*/
PICTL |= 0x00;

EA = 1; /*Enable each interrupt source*/

IEN1 |= (0x01<<5); /*Enable port 0 interrupt*/

P0IFG &= ~(0x10); /*Clear P0.4 interrupt status flag*/

#pragma vector = P0INT_VECTOR
__interrupt void p0_interrupt(void)
{
EA = 0;
if(P_0_4_Flag) /*P0.4 interrupt flag*/
{
P0IFG &= ~(0x10); /*Clear P0.4 interrupt flag*/
KeyFlag = ON;
}
P0IF = 0; /*Clear port 0 interrupt flag */
EA = 1;
}

那么问题来了:是我的代码有问题还是cc1110本身就不支持这种用法,求告知

是你程序的问题

注意寄存器配置,给你个IO中断按键的例子

看看你的PICTL那两句是不是对的。

跟我发的例子对比一下,还有后门的中断处理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top