请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 在 TM4C 数据表的第7.3.1节(寄存器访问时序)中、时序要求如下所述:
"...休眠寄存器只能写入两次访问之间的时间间隔... 软件必须保证在连续写入休眠寄存器或连续写入和读取之间插入该延迟。"
鉴于读取通常以全外设时钟速率执行(无需插入任何延迟)、我想知道 在写入一个寄存器后是否可以读取不同的休眠寄存器、而无需等待 WRC 或任何类似的延迟机制。 很明显、在不等待的情况下读回同一个寄存器将失败、但是否可以读取另一个寄存器? 下面是我尝试执行的操作(这是在 ISR 中):
/*读取屏蔽的中断状态。 // ulStatus = HibernateIntStatus (TRUE); HibernateIntClear (ulStatus) //*获取当前匹配(触发此中断的时间)。 */ ulMatchS = HibernateRTCMatchGet (0);
目前 、HibernateIntClear 调用在 WRC 位上等待忙后才返回、我已经测量到 ISR 中由于该调用而造成的显著时间损失。
我能否在不等待 WRC 的情况下从该匹配寄存器(或任何不是 HIB_IC 的休眠寄存器)读取数据? 如果可能的话、我想推迟检查 WRC、直到它绝对必要、我确实意识到这意味着从 driverlib 中冒险离开。
谢谢!