| ??? 05/21/15 08:30 Read: times | #190488 - P1TempState init and update Responding to: ???'s previous message | 
| 1. where is the P1TempState definition/declarartion/initialisation ?
 2. how the P1TempState is updated inside Timer0_ISR ? 3. where is the P1FinalState definition/declarartion/initialisation ? 4. this part   
// T0 is set for 10ms interval generation. Used for Switch Debounce 
void Timer0_ISR(void) interrupt 1 using 0      // Basic 10ms interrupt for the program
{
  static unsigned char debounce_count = 3; 
  TR0     = 0;                                 // Stop T0 timer
  TL0     = (65535UL-18518UL);                 // Load  TMR0 registers (18518 x 0.54us = 10ms)
  TH0     = (65535UL-18518UL) >> 8;
  TR0     = 1;                                 // ISR over. Start T0
	 
  if ( P1TempState == P1  )
    {
      --debounce_count;                        // If Current State of P1 is same as previous, dec, counter  
      if ( debounce_count == 0)
	{
	  P1FinalState = P1TempState;          // State of P1 has been same for 30ms, so valid.   
	  debounce_count = 3 ; 
	}			
    }
  else
   {
     debounce_count = 3;                       // Current state of P1 not equal to previous. Reset counter.
     P1TempState = P1;
   }	    			
	
  ////TR0     = 1;                                 // ISR over. Start T0
	
}	     
 should be running ... | 
| Topic | Author | Date | 
| Timer 0 ISR for Switch Debounce | 01/01/70 00:00 | |
| I guess | 01/01/70 00:00 | |
| Yes it is enabled in MAIN. Though not shown ! | 01/01/70 00:00 | |
| unsigned < 0 | 01/01/70 00:00 | |
| :^) | 01/01/70 00:00 | |
| P1TempState init and update | 01/01/70 00:00 | |
| Sorry about the delay... | 01/01/70 00:00 | |
| the code you mentioned is from a very old thread from 8052.c | 01/01/70 00:00 | |
| Thanks to you and Michael Karas !! | 01/01/70 00:00 | |
| You are welcome!! | 01/01/70 00:00 | |
| Old Stuff   | 01/01/70 00:00 | 



