查看函数"F2837xD_SWPrioritizeIsrLeels.h" ;我对 以下代码有几个问题:
#if (INT1PL =0)
#define MINT1_1PL ~(1 << 0); // MZ:A<"shift="" left".="" the="" bitwise="" representation="" of="" a="" is="" shifted="" left="" b="" bits.="" this="" same="" as="" multiplying="" by="" (2="" to="" power="" b), ="" ="" MINT1_1PL=1*2^0=1。
其他
#define MINT1_1PL 0xFFFF
#endif
#if (INT2PL >= INT1PL)||(INT2PL =0) //MZ:如果全局 interrupt2优先级大于或等于全局 interrupt1优先级或等于零。
#define MINT1_2PL ~(1 << 1) //MZ:全局中断#1的屏蔽、其组编号2的中断优先级等于2^1;MIT1_2PL = 2
其他
#define MINT1_2PL 0xFFFF
#endif
#if (INT3PL >= INT1PL)||(INT3PL =0)
#define MINT1_3PL ~(1 << 2) //MZ:全局中断#1的屏蔽、其组号3的中断优先级等于2^2;MIT1_3PL = 4
其他
#define MINT1_3PL 0xFFFF
问题:
1) 1)上述代码的用途是什么?
2) 2)我们在上述代码中所做的是为中断分配优先级吗? 在这种情况下、我们不应该列出 MINTx PL、而应该列出 INTxPL。
3) 3)如果目标是创建一个屏蔽值、CPU 可以在 ISR 中使用该值、以允许 CPU 中断当前 ISR 并为新的更高优先级的 ISR 提供服务、那么为什么所有这些值都相同; 0xFFFF
谢谢