TI中文支持网
TI专业的中文技术问题搜集分享网站

PIN_INTERRUPT跑死掉

启用  AXDL345 的中断,然后 我用cc1310的pin_io配置了 外部中断,再然后 我发现 在io的回调函数里面,一旦我使用IIC的读取函数,程序就会死掉;

bool iic_read(uint8_t add,uint8_t *buff,uint8_t len)
{
i2cTransaction.writeBuf = &add;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = buff;
i2cTransaction.readCount = len;
return I2C_transfer(i2c,&i2cTransaction);
}

不能这样处理嘛? 

我在主循环里面 (用标志位)读取IIC  就可以。

user5993042:

还有 cc13130有想stm32 那种 全球唯一芯片id sn号 这种东西嘛?

Viki Shi:

回复 user5993042:

1、你使用了两个中断,优先级是否设置的合理?
2、有,全球唯一的mac address,存放在ROM中,可以通过flash programmer 2 读取

user5993042:

回复 Viki Shi:

是这样的我第一个中断是用IIC 配置的AXDL345 传感器的 中断,产生freefall的时候引脚产生低电平;
然后 我用pin_interrupt,去检测这个AXDL345 产生的低电平;
但是产生电平之后,我需要读一次AXDL345 寄存器,清除AXDL345 的中断标志位;
这个时候 我把IIC—read, 放在void buttonCallbackFxn(PIN_Handle handle)必然死机,串口停止打印,debug 也报错;

但是 我在void buttonCallbackFxn(PIN_Handle handle) 选择置起标志位,然后 在主循环里面
IIC—read这样就没有问题
是第一种方式 有什么错嘛?

Viki Shi:

回复 user5993042:

通过外部中断去对传感器中断进行管理,要把外部中断优先级提高,具体你可以查一下中断嵌套方面的知识

user5993042:

回复 Viki Shi:

谢谢,那么问题来了;我仔细了看了一下外部中断的历程,并没有发现优先级设定的地方;还有 关于中断嵌套方面的知识有相应的文档嘛?

user5993042:

回复 Viki Shi:

你好啊,Viki Shi
现在 我不知道 这个mac address 的偏移地址啊,有文档描述 这方面的嘛?

赞(0)
未经允许不得转载:TI中文支持网 » PIN_INTERRUPT跑死掉
分享到: 更多 (0)