home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 21 / IOPROG_21.ISO / COMMON / LISTC2.ZIP / int.c next >
Encoding:
C/C++ Source or Header  |  1998-02-11  |  812 b   |  45 lines

  1. #include <pic1684.h>
  2. #define NLED 4
  3.  
  4. void inizializza();
  5.  
  6. int n;
  7. int val;
  8.  
  9. void inizializza()
  10. {
  11.   TRISB=0;           /* porta B: tutti i pin come Output */
  12.   PORTB=0;
  13.   OPTION=0x84;       /* setta il periodo del timer ad 1 sec. se f=6.7Khz */
  14.   TMR0=38;
  15.   GIE=1;      /* abilita gli interrupt */
  16.   T0IE=1;     /* abilita l'interrupt del timer */
  17. }
  18.  
  19. void interrupt isr()         /* ISR */
  20.   /* save_context;*/
  21.   if (T0IF) 
  22.   {
  23.     T0IF=0;   /* resetta il flag interrupt del timer */
  24.     PORTB=val;
  25.     val<<=1;
  26.     n--;
  27.     if(n==0){
  28.       n=NLED;
  29.       val=1;
  30.     }
  31.     TMR0=38;         /* ricarica il timer */
  32.   }
  33.   /*restore_context;*/
  34. }
  35.  
  36. main(void)
  37. {
  38.   val=1;
  39.   n=NLED;
  40.   inizializza();
  41.   while(1);          /* il programma puo' fare qualsiasi altra cosa */ 
  42. }
  43.  
  44.