初级会员

- 积分
- 93
- 金钱
- 93
- 注册时间
- 2014-4-2
- 在线时间
- 0 小时
|
5金钱
STM32中断初始化函数
void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)
{
u32 temp;
u8 IPRADDR=NVIC_Channel/4; //??×é??????4??,????×é???·
u8 IPROFFSET=NVIC_Channel%4;//??×é????????
IPROFFSET=IPROFFSET*8+4; //???????????·??????
MY_NVIC_PriorityGroupConfig(NVIC_Group);//?è??·?×é
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;//????????
if(NVIC_Channel<32)NVIC->ISER[0]|=1<<NVIC_Channel;//??????????(?????????°,?à·???×÷??OK)
else NVIC->ISER[1]|=1<<(NVIC_Channel-32);
NVIC->IPR[IPRADDR]|=temp<<IPROFFSET;//?è???ì????????????????????
}
中的
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;
这三句我只知道要求出最终写入中断优先级寄存器的值,但是这三句的思想或者思路是什么??
求原子哥解惑???????????????
|
|