张明峰:鱼与熊掌兼得!
详细内容
名称:张明峰:鱼与熊掌兼得!
1)针对PIC18系列,进入中断时,不管是高优先级中断还是低优先级中断,三个重要的寄存器--WREG、STATUS和BSR,一定会被硬件自动压入只有一级深度的“影子”寄存器中保护;
2)高优先级中断在处理过程中不可能被低优先级中断打断,故影子寄存器中的内容不会被破化。中断返回指令可以指示用“fast return”形式直接用影子寄存器中的内容快速恢复三个重要寄存器的原始值;
3)低优先级的中断服务可能被高优先级中断所打断,故原本也是保护在影子寄存器中的内容可能会被冲掉。因此用户必须自己编写额外的代码将上述三个寄存器保存在其它独立的备份单元中,不必理会影子寄存器的内容。返回时也不能通过“fast return”形式利用影子寄存器的内容恢复原现场,自己编写代码从备份单元中恢复寄存器的原始值;
4)如果用MPLAB-C18编译器,只要声明了低优先级的中断服务函数属性为“interruptlow”,编译器会自动加入额外的指令保护和恢复三个重要寄存器。中断退出时也不会用“fast return”形式。
5)如果中断中用到了其它复杂的运算,用户必须明确告诉编译器那些寄存器或数据段需要额外保护。请参考C18的使用手册。
请教张老师:关于中断嵌套的问题? - zxc526 2004-10-9 17:55:19 [ID:1390531点击:146] (334 Bytes) (100)鱼与熊掌兼得 -张明峰 2004-10-15 11:37:48 [ID:1397533点击:23] (948 Bytes) (90)简介C18F8720单片机的中断嵌套 -笑苍天 2004-10-15 10:10:48 [ID:1397378点击:24] (2662 Bytes) (0)那问题出在250us的那个中断上 -张明峰 2004-10-11 14:16:21 [ID:1392725点击:68] (53 Bytes) (0)中断 - zxc526 2004-10-10 22:11:10 [ID:1391989点击:84] (232 Bytes) (0)中断函数定义完全错误 -张明峰 2004-10-10 16:59:29 [ID:1391669点击:102] (786 Bytes) (1)进到中断入口的时候…… - yewuyi 2004-10-10 14:28:50 [ID:1391481点击:105] (70 Bytes) (0)中断服务程序! - zxc526 2004-10-10 11:33:09 [ID:1391217点击:115] (1321 Bytes) (0)不要去碰GIEH和GIEL -张明峰 2004-10-9 18:31:53 [ID:1390559点击:136] (30
