Action
Debounce is a port pin connected
to a switch.
Syntax
DEBOUNCE Px.y , state , label
[ , SUB]
Remarks
Px.y A port pin like P1.0
, to examine.
State 0 for jumping when Px.y is low , 1 for jumping when Px.y is high
Label The label to GOTO when the specified state is detected
SUB The label to GOSUB when the specified state is detected
When you specify the optional parameter SUB, a GOSUB to label is performed
instead of a GOTO.
The DEBOUNCE statements wait for a port pin to get high(1) or low(0).
When it does it waits 25 mS and checks again (eliminating bounce of a
switch)
When the condition is still true and there was no branch before, it branches
to the label.
When DEBOUNCE is executed again, the state of the switch must have gone
back in the original position before it can perform another branch.
Each DEBOUNCE statement which
use a different port uses 1 BIT of the internal memory to hold it's state.
What also should be mentioned
is that P2.2-P2.7 and P3 have internal pull up resistors. This can affect
the debounce statement. With these port pins, debounce is best to be used
as: Debounce P1.1, 0, Pr [, sub ] , as it will not require an external
pull up resistor.
See also
CONFIG DEBOUNCE
Example
'-----------------------------------------------------
' DEBOUN.BAS
' demonstrates DEBOUNCE
'-----------------------------------------------------
CONFIG DEBOUNCE = 30 'when
the config statement is not used a default of 25mS will be used
Do
'Debounce P1.1 , 1 , Pr 'try this for branching
when high(1)
Debounce P1.0 , 0 , Pr,SUB
' ^----- label to branch to
' ^---------- branch when P1.0 goes low(0)
' ^---------------- examine P1.0
'when
P1.0 goes low jump to subroutine Pr
'P1.0
must go high again before it jumps again
'to the label Pr when P1.0 is low
Loop
End
Pr:
Print "P1.0 was/is low"
Return
|