INT0外部中断程序进入不了中断(hitech编译器)

2020-02-08 09:10发布

本帖最后由 chandler-00 于 2012-6-26 15:39 编辑

先上程序,打算用rb0口的外部中断,中断计数两次控制rd0 ,rd1端口电压反向,可是中断一直进入不了用的是hitech 的编译器
求大神帮助!!!求hitech 中断的例程

//#include <p18F4685.h>
#include <htc.h>
#pragma config OSC=HS
#pragma config WDT=OFF
#pragma config LVP=OFF

unsigned char i;
void inter();
void interrupt HI_ISR()
     {
         if (INTCONbits.INT0IF == 1)
   
     inter();
     }
          
void main(void)
{
   
        i = 0;
        //端口输入输出设置 初始化
        TRISDbits.TRISD0 = 0;
        TRISDbits.TRISD1 = 0;
        PORTDbits.RD0 = 0;
        PORTDbits.RD1 = 1;
        TRISBbits.TRISB0 = 1;               // RB0设置输入 ,外部中断
       
   
       
        //中断允许
        INTCONbits.PEIE = 1;                // peripheral interrupt enable
        INTCONbits.GIE = 1;                 // global interrupt enable
        INTCONbits.INT0IE = 1;              //允许int0外部中断
        INTCONbits.INT0IF = 0;              //INT0外部中断标志为清零
    //INTCONbits.RBIE = 1 ;               //允许rb端口电平变化中断
        //INTCON2bits.RBIP = 1;               //int0始终高优先级
    while (1)                          //等待中断发生
        {
    if (i = 2)
          {
          PORTDbits.RD0 = ~PORTDbits.RD0;
          PORTDbits.RD1 = ~PORTDbits.RD1;
      i = 0 ;
      }
    }   
}
void inter()
      {
      i ++;
      INTCONbits.INT0IF  = 0 ;
      }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
chandler-00
2020-02-10 06:48
本帖最后由 chandler-00 于 2012-6-27 17:54 编辑
我开心 发表于 2012-6-27 17:09
那以前为什么近不了中断啊1!!!


最初的程序不行是因为ADCON1寄存器没有配置,我发的第二个程序实际上是可以进入中断的,汗个。就是在线调试时点的单步连续运行的问题,用连续运行的方式就可以了 不知连续运行和单步连续运行有什么区别

新手总是被各种问题困扰啊!

一周热门 更多>