打印
[PIC®/AVR®/dsPIC®产品]

多个中断同时使用---pic18f4480

[复制链接]
3845|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hiramlee|  楼主 | 2013-8-21 18:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hiramlee 于 2013-8-21 18:19 编辑

我同时使用了一个UART中断 一个外部中断 两个定时器中断TIMR0 TIMR1,
当不使用TIMR1程序工作完好,
当加上TIMR1后TIMR0的中断ISR没有被执行。求指点

static void interrupt rx_handler ()
{   
                if(TMR1IF&&TMR1IE )
        {
        //        GIE =0;
                TMR1H =  DeltaT[nMode+1]>>8  ;
                TMR1L =  DeltaT[nMode+1]&0x00ff ;
                //asm("MOVLW  TL_TIMER0");
        //asm("MOVWF TMROL,0");
                TMR1IF = 0;         

                switch(nMode)
                {

                  
                        case Mode1:
                        case Mode2:
                        case Mode3:
                        case Mode5:
                        {
                                PORTCbits.RC2=0;
                               PORTCbits.RC2=1;
                             _delay(9);                                       
                            PORTCbits.RC2=0;
                                break;
                        }
                        case Mode4:
                    {
                                PORTCbits.RC2=0;
                               PORTCbits.RC2=1;
                            _delay(119);                                
                            PORTCbits.RC2=0;
                                break;
                        }
                        default:
                        {

                        }
                }        
        //        GIE =1;
        }
    if(PIE1bits.RCIE & PIR1bits.RCIF)            //判断是否为串口接收中断
    {
           // INTCONbits.GIE = 0;
          // PIR1bits.RCIF =0;
                          //Delay1KTCYx(1);
                         while(BusyUSART());
             RCREG_NEW =  getcUSART();
                 
           
                    //putcUSART(RCREG_R);
              while(BusyUSART());
                          
            //INTCONbits.GIE = 1;
                //        Pulse = !Pulse;
    }

        if(INT0IF)
        {
                INT0IF=0;
                KeyDetect();
        }


        if(TMR0IF&&TMR0IE )
        {
                        GIE =0;
                TMR0H =  DeltaT[nMode]>>8  ;
                TMR0L =  DeltaT[nMode]&0x00ff ;
                //asm("MOVLW  TL_TIMER0");
        //asm("MOVWF TMROL,0");
                TMR0IF = 0;         

                switch(nMode)
                {

                  
                        case Mode1:
                        case Mode2:
                        case Mode3:
                        case Mode5:
                        {
                                PORTCbits.RC1=0;
                               PORTCbits.RC1=1;
                             _delay(9);                                       
                            PORTCbits.RC1=0;
                                break;
                        }
                        case Mode4:
                    {
                                PORTCbits.RC1=0;
                               PORTCbits.RC1=1;
                            _delay(119);                                
                            PORTCbits.RC1=0;
                                break;
                        }
                        default:
                        {

                        }
                }
                GIE =1;        
        }



      
}   
  
沙发
doob| | 2013-8-21 18:17 | 只看该作者
你起码说一下哪个型号吧。。。。。

使用特权

评论回复
板凳
hiramlee|  楼主 | 2013-8-21 18:19 | 只看该作者
doob 发表于 2013-8-21 18:17
你起码说一下哪个型号吧。。。。。

-pic18f4480

使用特权

评论回复
地板
shuidi_wangdan| | 2013-9-13 10:59 | 只看该作者
大哥,你用的什么编译器?为什么中断前边还用static?你可以给我一份你书写的中断格式吗?请你指点!

使用特权

评论回复
5
shuidi_wangdan| | 2013-9-13 15:07 | 只看该作者
你的初始化对吗?

使用特权

评论回复
6
zhengzhou86| | 2013-9-13 15:15 | 只看该作者
中断里面处理这么多程序,还有延时,这样做很不好,简化下吧,把程序处理都放在中断外处理,
你说不执行中断,1.外设相应中断没开启,2.中断里面延时影响

使用特权

评论回复
7
hiramlee|  楼主 | 2013-9-28 11:20 | 只看该作者
谢谢 各位 已经解决

使用特权

评论回复
8
Rain_King| | 2013-9-29 10:34 | 只看该作者
hiramlee 发表于 2013-9-28 11:20
谢谢 各位 已经解决

怎么解决的,说一下可以么,你这样后来的人也会找不到解决方法的......

使用特权

评论回复
9
zhengjs167| | 2015-3-18 10:13 | 只看该作者
hiramlee 发表于 2013-9-28 11:20
谢谢 各位 已经解决

大神,怎么解决的,求详解?

使用特权

评论回复
10
jerryqww| | 2015-12-20 09:49 | 只看该作者
这样是不是不太好,有困难就发帖,自己解决了,或者在别人评论中找到了思路,不予别人分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:With men this is possible;With God all things are possible!

2

主题

83

帖子

3

粉丝