Time0

Code mẫu để thiết lập Time0

////main

   setup_timer_0(RTCC_DIV_2); 

   enable_interrupts(int_timer0);

   enable_interrupts(global);

   set_timer0(6);

 

////////////

#INT_TIMER0

   void TIME0_src()

   {   

      //Dividing = 2

      //frenquency xtal is 20MHz

      //time for overflow interupt: value  = (256-set_num )*DIV*4/f  (us)

      //set_num=6 then value=100us      

      CLEAR_INTERRUPT(INT_TIMER0);

      DISABLE_INTERRUPTS(GLOBAL);

      counter++;            

      if(counter==100000) // 1s

      {

         counter=0;         

         if(counter==0) read_time=1;   //doc du lieu DS1307           

      }

      SET_TIMER0(6);

      ENABLE_INTERRUPTS(GLOBAL);

   }