什么是IFC的读取-清除(Read-Clear)操作?

开始者 <a href="http://community.silabs.com/t5/Welcome-and-Announcements/Community-Ranking-System-and-Recognition-Program/m-p/140490#U140490"><font color="#000000"><font size="2">Master Employee</font></font> </a> delu 修改时间 ‎01-16-2017 03:10 PM

问题

什么是IFC的读取-清除(Read-Clear )操作?

答案

IFC读取-清除操作是EFM32 Gecko系列1和EFR3无线Gecko 系列1设备的一个新加入特性。

 

除了常用的通过IFS/IFC寄存器中断置位和中断清除操作之外,有一个通过置位寄存器MSC_CTRL 位域 IFCREADCLEAR 来使能(打开该功能)的附加原子读取-清除操作。

 

在使能的情况下,外设的IFC寄存器的读取会返回中断向量值(镜像IF寄存器),同时清除已经置位的中断标志位。该操作功能上等效于读取IF寄存器并立即把读取的值写回到IFC寄存器。

 

/* Enable atomic read-clear operation on reading IFC register */
MSC->CTRL |= MSC_CTRL_IFCREADCLEAR;