
void externalinterrupt(void) interrupt 0    //invoked on every positive edge
{
   if(!flag){
   TR0 = 1;    //enable timer0
   flag = !flag;        <---- shouldn't this be !flag=flag  ??
  }
   if(flag){
   TR0 = 0;   //disable timer0
   IEN0 = 0x00;    //disable all interrupts
   flag = !flag;
   timercounts = (TH0*256) + TL0;
   time = timercounts/921583;
   rpm = (unsigned int)(30/time);
   }
}
