[PIC®/AVR®/dsPIC®产品] PIC单片机中断服务程序

[复制链接]
5897|12
 楼主| poorhack 发表于 2014-8-22 15:52 | 显示全部楼层 |阅读模式
大虾们,单片机的中断服务函数都是在查出来的?以前学51用的是汇编,那时要写中断地址,后来转到C写程序,就不知道中断服务程序怎么写的,网上都写成void Time0(void) interrupt 1 using 0。现在用PIC单片机,查了半天手册,没发现中断服务程序怎么写,麻烦大侠们告诉我pic单片机中断服务程序怎么写,越多越好。还有这些东西都在哪里查。
interyujie 发表于 2014-8-22 15:54 | 显示全部楼层
PIC16就interrupt一个入口 不像51有很多中断入口
 楼主| poorhack 发表于 2014-8-22 16:01 | 显示全部楼层
interyujie 发表于 2014-8-22 15:54
PIC16就interrupt一个入口 不像51有很多中断入口

是这个么  void interrupt ISR(void);
是不是所有的中断,定时器中断,外部中断等等都是这个函数?那我如果同时使用定时器0和外部中断,那会不会冲突?要在void interrupt ISR(void)函数里判断是哪个中断么?
interyujie 发表于 2014-8-22 16:04 | 显示全部楼层
一有中断就进入中断函数,然后查询即可,你认为优先级高就写前面即可,一个个标志位查询下来,不会冲突的
 楼主| poorhack 发表于 2014-8-22 16:12 | 显示全部楼层
interyujie 发表于 2014-8-22 16:04
一有中断就进入中断函数,然后查询即可,你认为优先级高就写前面即可,一个个标志位查询下来,不会冲突的 ...

假设我使用了一个外部中断,当检测到下降沿进入中断,然后处理中断函数,在这时定时器是否还计时?如果计时又有溢出中断,是不是又进入一次中断服务函数,如果我外部中断服务函数此时还没有处理完,怎么办?
yklstudent 发表于 2014-8-22 22:42 | 显示全部楼层
又不支持中断嵌套 所以当前中断没处理完退出来,再用中断也得等着
兰天白云 发表于 2014-8-23 17:09 | 显示全部楼层
PIC有些单片机只有一个中入口,对于这种单片机,进入中断后还需要查询判断到底是哪个设备引起中断,然后跳转到对应的服务程序

有些有2个以上的中断入口,用法与51接近
wuhenyouyu 发表于 2014-9-17 22:55 来自手机 | 显示全部楼层
就几句话定义,你随便找个例子,看看就明白了!
huanhuan7hao 发表于 2014-9-18 14:24 | 显示全部楼层
PIC18F是否也是只有一个中断入口?
yklstudent 发表于 2014-9-18 15:24 | 显示全部楼层
huanhuan7hao 发表于 2014-9-18 14:24
PIC18F是否也是只有一个中断入口?

两个,一高、一低;
xp8587365 发表于 2014-9-18 16:58 | 显示全部楼层
还是要看你具体的PIC单片机选型的,一般用的PIC16的就一个入口。
void interrupt INT_ISR (void)
{
        //        ---------------         TMR0 INT         -------------------        //
        if (T0IF & T0IE)
        {               
        }

        //        -------------------         TME1 INT         ---------------        //

        if (TMR1IF & TMR1IE)
        {
        }
liu0000feng 发表于 2015-4-23 17:51 | 显示全部楼层
PIC的中断很好写的!百度一下,就有的!
d-jason 发表于 2017-1-12 08:08 | 显示全部楼层
thank you!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

198

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部