INT1 不进中断!

[复制链接]
 楼主| 457878 发表于 2012-3-20 14:13 | 显示全部楼层 |阅读模式
不进中断,头大了!!


  1. #pragma config WDTEN = OFF          //WDT disabled (enabled by SWDTEN bit)
  2. #pragma config PLLDIV = 2           //Divide by 3 (12 MHz oscillator input)
  3. #pragma config STVREN = ON          //stack overflow/underflow reset enabled
  4. #pragma config XINST = OFF          //Extended instruction set disabled
  5. #pragma config CPUDIV = OSC1        //No CPU system clock divide
  6. #pragma config CP0 = OFF            //Program memory is not code-protected
  7. #pragma config OSC = INTOSCPLL
  8. #pragma config T1DIG = OFF           //Sec Osc clock source may be selected
  9. #pragma config LPT1OSC = OFF        //high power Timer1 mode

  10. #pragma config FCMEN = OFF          //Fail-Safe Clock Monitor disabled
  11. #pragma config IESO = OFF           //Two-Speed Start-up disabled
  12. #pragma config WDTPS = 32768        //1:32768
  13. #pragma config RTCOSC = INTOSCREF    //RTCC uses INTRC as clock

  14. #pragma config DSBOREN = OFF        //Zero-Power BOR disabled in Deep Sleep
  15. #pragma config DSWDTOSC = INTOSCREF //DSWDT uses INTOSC/INTRC as clock
  16. #pragma config DSWDTEN = OFF        //Disabled
  17. #pragma config DSWDTPS = 2048       //1:8,192 (8.5 seconds)

  18. #pragma config IOL1WAY = OFF        //IOLOCK bit can be set and cleared
  19. #pragma config MSSP7B_EN = MSK7     //7 Bit address masking
  20. #pragma config WPFP = PAGE_0        //Write Protect Program Flash Page 0
  21. #pragma config WPEND = PAGE_0       //Start protection at page 0
  22. #pragma config WPCFG = OFF          //Write/Erase last page protect Disabled
  23. #pragma config WPDIS = OFF          //WPFP[5:0], WPEND, and WPCFG bits ignored

  24. #include <p18cxxx.h>
  25. void drv_CPUIO_INT1_Init_Falling(void)
  26. {
  27. INTCON3bits.INT1IF = 0;
  28. INTCON2bits.INTEDG1=0;  //No, falling edge is used
  29. INTCON2bits.RBPU=1; //disable pullups
  30. INTCON2bits.RBIP=1;
  31. INTCONbits.RBIE=1;
  32. INTCONbits.RBIF=0;
  33. INTCON3bits.INT1IP=1;
  34. INTCON3bits.INT1IE=1;
  35. PORTB = PORTB;

  36. }
  37. void main(void)
  38. {
  39. TRISA = 0x25;
  40. PORTA = 0x27;
  41. LATA = 0x27;
  42. TRISB = 0x1;
  43. PORTB = 0xF;
  44. LATB = 0xF;
  45. TRISC = 0x33;
  46. PORTC = 0x73;
  47. LATC = 0x73;
  48. RPINR1 = 0; //INT1 = RP0(RA0外接按键,按下为低电平)
  49. drv_CPUIO_INT1_Init_Falling();
  50. while(1)
  51. {
  52.   Nop();
  53.   Nop();
  54.   PORTB = PORTB;
  55. }
  56. }
  57. void high_isr (void);
  58. void low_isr (void);
  59. #pragma code high_vector=0x08
  60. void high_vector (void)
  61. {
  62.   _asm goto high_isr _endasm
  63. }
  64. #pragma code low_vector=0x18
  65. void low_vector (void)
  66. {
  67.   _asm goto low_isr _endasm
  68. }

  69. #pragma code
  70. #pragma interrupt high_isr
  71. void high_isr (void)
  72. {
  73. if(INTCON3bits.INT1IF)
  74. {
  75.   Nop();
  76.   INTCON3bits.INT1IF = 0;
  77. }
  78. if(INTCONbits.RBIF)
  79. {
  80.   Nop();
  81.   INTCONbits.RBIF=0;
  82. }
  83. }
  84. #pragma interruptlow low_isr
  85. void low_isr (void)
  86. {
  87. Nop();
  88. Nop();
  89. Nop();
  90. }

复制代码
yewuyi 发表于 2012-3-20 14:27 | 显示全部楼层
优先级对不对?

是不是出现了更高优先级中断屏蔽了低优先级中断?
asspeed 发表于 2012-3-20 14:41 | 显示全部楼层
全局都没开,能响应才怪...
 楼主| 457878 发表于 2012-3-21 06:34 | 显示全部楼层
上面问题都有,而且,眼睛看花了,看错了引脚。
 楼主| 457878 发表于 2012-3-21 06:34 | 显示全部楼层
zxx6176 发表于 2012-4-5 16:28 | 显示全部楼层
楼主 现在一切恢复正常了么 1# 457878
您需要登录后才可以回帖 登录 | 注册

本版积分规则

270

主题

885

帖子

3

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