PF4的中断配置?

时间:2015-12-25 06:19:38

标签: c arm cortex-m

我们将优先级5分配给端口F ,然后我们编写以下代码

int main() { 
NVIC_PRI7_R |=0☓00A00000;  
NVIC_EN0_R= 0☓40000000;

我的问题是这段代码0☓00A00000来自哪里?

1 个答案:

答案 0 :(得分:1)

嵌套向量中断控制器(NVIC)寄存器存在于ARM Cortex M architecture中,因此我假设您正在为这种目标编程。

根据ARM Cortex M手册:

  

NVIC最多支持240个中断,每个中断最多256个   可以动态改变的优先级。处理器和NVIC可以   进入一个非常低功耗的睡眠模式,离开唤醒控制器   (WIC)识别中断并确定其优先级。

NVIC_PRI7_R变量用于通过特定的寄存器操作在给定模式下触发CPU。将其设置为给定值将使CPU以特定的优先级模式进入(请阅读文档以获取更多信息)。

关于0☓00a00000,它充当掩码,在NVIC_PRI7_R中将几位设置为“1”。确切地说,0x00a00000 == 0b101000000000000000000000,因此操作|=将两位设置为1并将优先级模式触发为5(注意0b101 == 5)。阅读ARM Cortex M手册,了解这些非常精确的位会触发CPU的优先级模式。

希望它能帮助你更好地理解这种做法。

相关问题