历史上的今天

今天是:2024年11月19日(星期二)

2018年11月19日 | 少走弯路,PIC单片机中断总结

发布者:Tiger8 来源: eefocus关键字:PIC单片机  中断总结 手机看文章 扫描二维码
随时随地手机看文章

PIC单片机有多个中断源,16系列只有一个中断入口,18系列有两个中断入口,不同编译器下书写格式又不大一样。网上资源千篇一律,也不够系统,只是简单的罗列程序,代码生存的环境不一样也少有说明。在此做个简单的总结,因为又走了弯路...


1.先说18系列(MCC18编译器下):


MPLAB C18不自动把中断服务程序放在中端向量处。通常将GOTO指令放在中断向量处,从而把控制权转交给相应中断服务程序。


void low_isr(void);


void high_isr(void);


*****************************低级中断入口及服务子程序************************************/


#pragma code low_vector=0x18//低优先级中断入口,转自21ic基础知识


void interrupt_at_low_vector(void)


{


_asm GOTO low_isr _endasm


}


#pragma interrupt low_isr


#pragma code


void low_isr(void)


{


//低优先级中断服务函数写在这里


}


*****************************高级中断入口及服务子程序************************************/


#pragma code high_vecotr=0x08//高优先级中断入口


void interrupt_at_high_vector(void)


{


_asm GOTO high_isr _endasm


}


#pragma code


#pragma interrupt high_isr


void high_isr(void)


{


//高优先级中断服务函数写在这里


}


2.再说18系列(PICC18编译器下):


//void PIC18F_High_isr(void);


//void PIC18F_Low_isr(void);



*****************************低级中断服务子程序************************************/


#pragma interrupt lowlow_priority PIC18F_Low_isr


void PIC18F_Low_isr (void)


{


//低优先级中断服务函数写在这里


}


*****************************高级中断服务子程序************************************/


#pragma interrupt PIC18F_High_isr


void PIC18F_High_isr (void)


{


//高优先级中断服务函数写在这里


}


3.三说16系列(PICC编译器下)(只有一个中断入口,无所谓高了就):


void interrupt isr (void)


{


//中断服务函数写在这里


}


void init_interrupt()


{


GIE=0;


PEIE=1;


IPEN=1;


//TMR1IE=1;


//TMR1IF=0;


//TMR1IP=0;


//TMR1L=61;


//T1CON=0xC7;//set up timer0 - 8bit -prescaler


//TMR0IE=1;


//TMR0IF=0;


//TMR0IP=0;


//TMR0L=61;


//T0CON=0xC7;//set up timer0 - 8bit -prescaler 1:256


GIE=1;


}


关键字:PIC单片机  中断总结 引用地址:少走弯路,PIC单片机中断总结

上一篇:PIC单片机PIC18F26K80中断优先级图
下一篇:最后一页

推荐阅读

Intel 14nm产能不足,短期内给使用Intel处理器的厂商带来的影响很大,缺货涨价致使成本上涨不说,有些小厂商,还有DIY市场基本上都拿不到货,估计这部分客户要投奔AMD了!今年Q3季度英特尔被爆出14nm产能危机,处理器一时间也变成了理财产品,缺货的同时还在涨价,散片八代酷睿价格已经没什么性价比之说了。尽管英特尔表态加大14nm产能,但是缺货预计会持...
关于功率分析仪与示波器之间存在着什么样的区别,相信你也存在这样的疑问,下面就为大家讲解一下功率分析仪与示波器之间的区别。首先功率分析仪没有死区时间,示波器有死区时间,这也是功率分析仪的采样率没有示波器高的原因,功率分析仪对于每一时刻的输入信号都进行计算,而示波器通过触发进行波形采集; 其次示波器无法准确测量交流电功率,这是最大的...
本文编译自Xilinx博客无线标准的发展见证了频谱效率和数据速率的显著提高,如下表所示。新的和复杂的调制方案以及增加的无线电带宽正在为Sub-1GHz的无线接入提供高达1Gb/s的峰值数据速率。然而,由于LTE和5G波形的特性,频谱效率的提高是以降低无线电能量效率为代价的。为了实现更高的频谱效率或更多的数据位,会产生峰值平均功率比(PAPR),如下图所示。...
高通与小鹏汽车达成战略合作,推进骁龙汽车数字座舱平台在小鹏汽车全系车型中的采用2021年11月19日,广州——今日,高通技术公司与小鹏汽车在第十九届广州国际汽车展览会(简称“广州车展”)上宣布达成战略合作关系并签署战略合作谅解备忘录(MOU),深化双方在智能座舱领域的合作——双方决定将共同推动骁龙™汽车数字座舱平台在小鹏汽车全系车型中的采...

史海拾趣

问答坊 | AI 解惑

新人报到

初学嵌入式系统,大家多多关照呀 …

查看全部问答∨

学习定时器的例程

下面的附件是我对定时器例程的分析,因为是初次学习这款ARM,所以水平有限。大家有什么好的学习方法请分享一下。…

查看全部问答∨

nios问题

今天用quartus把nios 核建立好了,只是一个最小的系统,主要结构是:一个CPU,一个UART,一个on-chip-memory,两个i/o输出,在nios下,写好了头文件,定义了地址: #defined  """""" ; ; struct  ult_32  ...…

查看全部问答∨

vx5.5 + pentium (vmware) 问题

在PC上用vmware模拟了另一台PC, 又模拟了个软驱灌了一bootrom, 现在bootrom能启动并从主机ftp取得vxWorks文件。 加载并启动成功(蓝屏上打印Starting at 0x308000...) WDB也能连上了。 问题来了,我在usrRoot里启动了一任务,循环用printf打 ...…

查看全部问答∨

求救,触摸屏下的中文输入开发需要注意什么,我的面试题

面试官给我一个星期的时间做一个报告。关于技术,成本,开发周期的。 别的不管,就说技术方面。大家帮我提一些技术上需要考虑的问题,开发的困难之处,谢谢。所有的分相送…

查看全部问答∨

【有图】STM32F103Datasheet有关的问题

看看D、D1、E、E1四个参数的公制和英制的对应。看出门道的请跟帖…

查看全部问答∨

新手,求助2812资料

本人初次接触TMS320F2812 想找些资料学习 ,希望各位大虾能够给点帮助…

查看全部问答∨

proteus与multisim仿真结果不同?

以上两个图是对同一信号发生电路的仿真,前者是proteus的,后者是multisim的,proteus完全没有产生正弦波形,其输出基本不变,是不是我选的proteus的器件模型有问题啊, 还是说proteus的仿真设置有问题?…

查看全部问答∨

看图说话系列—你能说出这些开关的名字吗

看图说话系列—你能说出这些开关的名字吗 …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved