Ik heb hier een schakelaar aan de input van een seriele port hangen (op de CD pin).
Binnen vb6 heb ik een mscomm control en de events controleer ik op de volgende manier:
Het contact van de schakelaar dendert een beetje bij het omzetten en ziet daarom de case comEvCD soms wel 5 keer, en voert hem dus ook 5 keer uit.
Is er een manier dat als er een event wordt gedetecteerd even te wachten alvorens de event te bepalen en de select case uit te voeren?
Een Sleep(500) in de case bijvoorbeeld werkt niet, omdat hij gewoon heel die case 5x uitvoert...
/edit:
Natuurlijk kan ik het doen met een flip-flop of debouncer, maar ik wil graag weten of het in software ook kan.
Binnen vb6 heb ik een mscomm control en de events controleer ik op de volgende manier:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
' Handle each event or error by placing
' code below each case statement
' Errors
Case comEventBreak ' A Break was received.
Case comEventCDTO ' CD (RLSD) Timeout.
Case comEventCTSTO ' CTS Timeout.
Case comEventDSRTO ' DSR Timeout.
Case comEventFrame ' Framing Error
Case comEventOverrun ' Data Lost.
Case comEventRxOver ' Receive buffer overflow.
Case comEventRxParity ' Parity Error.
Case comEventTxFull ' Transmit buffer full.
Case comEventDCB ' Unexpected error retrieving DCB]
' Events
Case comEvCD ' Change in the CD line.
If MSComm1.CDHolding Then CD.SignalOn
If Not MSComm1.CDHolding Then CD.SignalOff
End Select
End Sub |
Het contact van de schakelaar dendert een beetje bij het omzetten en ziet daarom de case comEvCD soms wel 5 keer, en voert hem dus ook 5 keer uit.
Is er een manier dat als er een event wordt gedetecteerd even te wachten alvorens de event te bepalen en de select case uit te voeren?
Een Sleep(500) in de case bijvoorbeeld werkt niet, omdat hij gewoon heel die case 5x uitvoert...
/edit:
Natuurlijk kan ik het doen met een flip-flop of debouncer, maar ik wil graag weten of het in software ook kan.
[ Voor 12% gewijzigd door LiquidSmoke op 17-03-2007 13:07 ]