ZHCACQ6 june 2023 TCAL6408 , TCAL6416 , TCAL9538 , TCAL9539 , TCAL9539-Q1
中断状态寄存器(0x4C 和 0x4D)是用于标识触发的中断源的只读寄存器。读取中断状态寄存器时,逻辑 1 表示相应的输入引脚是中断源。逻辑 0 表示输入引脚不是中断源。
如果中断屏蔽寄存器(0x4A 和 0x4B)中的相应位设置为逻辑 1(已屏蔽),中断状态位会返回逻辑 0。
对于以下示例,TCAL6416 p 端口 P04 设置为输入且逻辑状态从高电平变为低电平。在中断状态寄存器 (0x4C) 内部,如果中断未被屏蔽,则保存数据 b00010000 或 0x10。对于本示例,表 6-1 中的位 S-04 = 1。位 S-04 等于 P04 p 端口,逻辑 1 表示该端口由于引脚上的状态变化而设置中断。
位 | S-07 | S-06 | S-05 | S-04 | S-03 | S-02 | S-01 | S-00 |
默认值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
位 | S-17 | S-16 | S-15 | S-14 | S-13 | S-12 | S-11 | S-10 |
默认值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
要检查端口 1 上的中断,需要读取 TCAL6416(或任何 TCAL I/O 扩展器)内部的中断状态寄存器。首先,需要使用器件地址 0x21 后跟一个写入位对 TCAL6416 进行写入。然后,发送中断状态寄存器 0x4C 的地址。下一步是通过再次发送器件地址 0x21 后跟一个读取位来从 TCAL6416 读取数据。此时,从中断状态寄存器 (0x4C) 读取的数据为 0x10,这会正确识别触发了 P04 中断,从而告诉我们 p 端口 P04 上发生了输入变化。图 6-1 显示了整个过程。