i2c主模式使用中断

2个帖子/ 0新
最后一篇
Joe.Brackman.
离线
最后一次露面:4年7个月前
加入:2015-05-29 18:47
i2c主模式使用中断

你好。我正在通过一些I2C代码,我们希望能够从/到I2C接口触发读写,并使用中断来处理已完成的事件。我们不希望在所有时间内进行I2C中断,也不希望处理所有各种中断(TX空,RX Over等) - 只是Rx满,主要是。

例如,我们希望触发30读(该数字可能会改变)并在接收FIFO超过阈值时获得I2C中断(RX全部条件)。

但是,我无法让R_RX_FULL中断射击。

这是我迄今为止尝试过的东西:

  • 在I2C_INIT()中,调用nvic_disableirq(i2c_irqn)和nvic_setpriority(i2c_irqn,1)只是用于初始设置
  • 揭示RX FIFO完全中断
    setword16(i2c_intr_mask_reg,0x0000);
    setBits16(i2c_intr_mask_reg,r_rx_full,1);
  • 清除待定IRQSnvic_clearpendingirq(i2c_irqn);
  • 当需要启用RX FIFO完全中断时,我首先将RX FIFO阈值设置为setword16(i2c_rx_tl_reg,numbytestorx - 1)
  • 然后我以紧密的循环发送读取命令。此循环应比从I2C接口读取的字节快得多。
  • 然后我启用和清除待处理的IRQnvic_enableirq(i2c_irqn)nvic_clearpendingirq(i2c_irqn)
  • 有什么想法吗?我在这里做错了吗?

关键词:
设备:
mt_dialog.
离线
最后一次露面:2个月4天前
职员
加入:2015-06-08 11:34
嗨Joe.Brackman,

嗨Joe.Brackman,

请检查下面的帖子并按照步骤操作。

http://support.dialog-semicondiondiondiondum/i2c-data-transfer-size.

我不能在代码中看到任何错误,使用启用,禁用nvic,您应该能够击中中断。

谢谢mt_dialog.