工具/软件:Code Composer Studio
您好!
从 ISR 调用 I2C 函数时遇到问题。
I2C_WRITE_BYTE ()、I2C_READ_BYTE ()。 函数在主循环中100%正常工作、但在 ISR 中不正常工作
它始终在无限循环处挂起。
I2C 中断不用于 I2C_WRITE_BYTE ()、I2C_READ_BYTE ()操作。
所以问题是只有 I2C_WRITE_BYTE ()、I2C_READ_BYTE ()被放置在 ISR 中
#pragma vector=Port1_vector
_interrupt void port1_ISR_handler (void)
{
char Rx_value=0;
if (P1IFG 和 BIT1)
{
if (P1IES & BIT1)
{
I2C_WRITE_BYTE (0x0020、bbf);
RX_Value=I2C_READ_BYTE (0x0020);
}
P1IFG = 0;//清除所有 P1中断标志
}
}
任何相关人员请尽快回复、
提前感谢
Prakash