fork(1) download
  1. #include <p18f4550.h>
  2.  
  3. #define mybit PORTBbits.RB5
  4.  
  5. void timer0_isr(void);
  6. void my_isr(void);
  7. void hipri_int(void);
  8.  
  9. #pragma interrupt my_isr
  10. void my_isr(void)
  11. {
  12. if (INTCONbits.TMR0IF == 1)
  13. {
  14. timer0_isr();
  15. }
  16. }
  17.  
  18. #pragma code hipri_int = 0x08
  19. void hipri_int(void)
  20. {
  21. _asm
  22. GOTO my_isr
  23. _endasm
  24. }
  25. #pragma code
  26.  
  27. void timer0_isr(void)
  28. {
  29. mybit = ~mybit;
  30.  
  31. TMR0H = 0xFD;
  32. TMR0L = 0xF8;
  33.  
  34. INTCONbits.TMR0IF = 0;
  35. }
  36.  
  37. void main(void)
  38. {
  39.  
  40. TRISBbits.TRISB5 = 0;
  41. mybit = 0;
  42.  
  43.  
  44. T0CON = 0x08;
  45. TMR0H = 0xFD;
  46. TMR0L = 0xF8;
  47.  
  48. INTCONbits.TMR0IF = 0;
  49. INTCONbits.TMR0IE = 1;
  50. T0CONbits.TMR0ON = 1;
  51.  
  52.  
  53. INTCONbits.GIE = 1;
  54. INTCONbits.PEIE = 1;
  55.  
  56. while (1)
  57. {
  58.  
  59. }
  60. }
  61.  
Success #stdin #stdout 0.03s 25712KB
stdin
Standard input is empty
stdout
#include <p18f4550.h>   

#define mybit PORTBbits.RB5   

void timer0_isr(void);
void my_isr(void);
void hipri_int(void);

#pragma interrupt my_isr
void my_isr(void)
{
    if (INTCONbits.TMR0IF == 1)   
    {
        timer0_isr();             
    }
}

#pragma code hipri_int = 0x08
void hipri_int(void)
{
    _asm
        GOTO my_isr
    _endasm
}
#pragma code

void timer0_isr(void)
{
    mybit = ~mybit;       

    TMR0H = 0xFD;
    TMR0L = 0xF8;

    INTCONbits.TMR0IF = 0;
}

void main(void)
{
   
    TRISBbits.TRISB5 = 0;
    mybit = 0;  

   
    T0CON = 0x08;    
    TMR0H = 0xFD;   
    TMR0L = 0xF8;

    INTCONbits.TMR0IF = 0;  
    INTCONbits.TMR0IE = 1; 
    T0CONbits.TMR0ON = 1;   

 
    INTCONbits.GIE  = 1;
    INTCONbits.PEIE = 1;

    while (1)
    {
       
    }
}