pic单片机中断

上传人:E**** 文档编号:118450483 上传时间:2019-12-15 格式:DOC 页数:4 大小:32.08KB
返回 下载 相关 举报
pic单片机中断_第1页
第1页 / 共4页
pic单片机中断_第2页
第2页 / 共4页
pic单片机中断_第3页
第3页 / 共4页
pic单片机中断_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《pic单片机中断》由会员分享,可在线阅读,更多相关《pic单片机中断(4页珍藏版)》请在金锄头文库上搜索。

1、MCC18中断写法 MPLAB C18 不自动把中断服务程序放在中断向量处。通常将GOTO 指令放在中断向量处,从而把控制权转交给相应的中断服务程序 PIC18系列的低优先级中断入口地址在0x0018地址,下面的代码是在入口地址处放置一个向量函数,这个向量函数里就是一个内嵌汇编的GOTO指令,GOTO到低优先级的中断服务函数InterruptHandlerLow。/-低优先级中断入口-1#pragmacodeInterruptVectorLow=0x18/用#pragma伪指令定义一个名字叫InterruptVectorLow的段,并把这个段放到0x18地址起始的代码空间2voidInterr

2、uptVectorLow(void)/低优先级中断向量函数34_asm5gotoInterruptHandlerLow/内嵌汇编指令6_endasm78#pragmacode/这里不是多余的,它是告诉连接器回到默认的代码段,如果不加的话,连接器就会傻傻地把后面的代码紧跟着上面的代码一直放下去。而LKR文件里定义了向量区最多到0x29地址,所以如果没加此行通常会报错910#pragmainterruptlowInterruptHandlerLow/这里使用interruptlow这个关键词来声明InterruptHandlerLow这个函数是低优先级中断服务函数,用了关键词后,这个函数将会由编译

3、器自动产生基本的现场保护,并且这个函数的返回将是使用RETFIE返回的。111213voidInterruptHandlerLow(void)1415/*低优先级服务函数的代码写在这里*/16PIC18系列的高优先级中断入口地址在0x0008地址,下面的代码是在这个入口地址处放置一个向量函数,这个向量函数里就是一个内嵌汇编的GOTO指令,GOTO到高优先级的中断服务函数InterruptHandlerHigh 。/-高优先级中断入口-1#pragmacodeInterruptVectorHigh=0x08/用#pragma伪指令定义一个名字叫InterruptVectorHigh的段,并把这个

4、段放到0x08地址起始的代码空间2voidInterruptVectorHigh(void)/高优先级中断向量函数34_asm5gotoInterruptHandlerHigh/内嵌汇编指令6_endasm78#pragmacode/回到默认代码段,原因同上9#pragmainterruptInterruptHandlerHigh1011voidInterruptHandlerHigh(void)1213/*高优先级服务函数的代码写在这里*/1415if(INTCONbits.TMR0IF)16/checkforTMR0overflow17INTCONbits.TMR0IF=0;/cleari

5、nterruptflag18;19;202122对于MPLAB C18,上面的高低优先级的中断向量函数和中断服务函数,各只能出现一次,不能有多个中断服务函数,如果多个中断都是高优先级的,在高优先级中断服务函数里通过判断各自的中断标志位来做对应处理。YYY分类: 技术转载标签: C18, 中断好文要顶 关注我 收藏该文 yuani关注 - 0粉丝 - 1 +加关注 0 0 上一篇:也来开个博客玩玩posted on 2010-01-27 16:38 yuani 阅读(1957) 评论(2) 编辑 收藏 评论#1楼楼主 2010-03-14 18:46 yuani CONbits.IPEN = 1

6、; /使能中断优先级INTCONbits.GIEH = 1; /允许/禁止 所有高优先级中断INTCONbits.GIEL = 1; /允许/禁止 所有低优先级中断/RCONbits.IPEN = 0; /禁止中断优先级/INTCONbits.GIE = 1; /允许/禁止 所有中断源/INTCONbits.PEIE = 1; /允许/禁止 所有外设中断源当IPEN=1时,中断源使用高优先级中断时GIEH = 1;GIEL 可以=0;中断源使用低优先级中断时GIEH = 1;GIEL =1;当IPEN=0时,所有中断均跳转到08H(使用高优先级中断向量入口)GIEH = 1;GIEL =1;支

7、持(0)反对(0)http:/ #2楼22692182011/12/13 16:08:49 2011-12-13 16:08 tjc211 请问博主,我的PICC8.35 编译识别不了#pragma code 这个伪指令,能否帮我解决,不胜感激!程序和警告提示如下(本人QQ 317235753或邮箱):#pragma code InterruptVectorHigh = 0x08void InterruptVectorHigh (void)asm(goto _InterruptHandlerHigh); #pragma code#pragma interrupt InterruptHandlerHighvoid interrupt InterruptHandlerHigh(void)Warning000 C:aa.C 19 : unknown pragma codeWarning000 C:aa.C : unknown pragma InterruptVectorHighWarning000 C:aa.C 19 : unknown pragma =Warning000 C:aa.C 19 : unknown pragma 0x08支持(0)反对(0)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号