| ??? 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 |



