Het pulsen-tel programma
Hieronder de programmacode die ik gebruik om de pulsen te tellen. Het enige wat dit programmaatje doet:
- voortdurend ingang-poortje 7 in de gaten houden
- bij verandering een tellertje ophogen
- en deze teller doorsturen naar de seriele poort.
Da's alles.
' {$STAMP BS2}
' {$PBASIC 2.5}
' Eerst een paar "variabelen" die gebruikt worden
cur VAR Bit ' huidige (current) status van de ingangs-poort
prev VAR Bit ' vorige (previous) status .....
ctr VAR Byte ' hulp-teller
total VAR Word ' totaal teller
DEBUG "0", CR ' Bij het opstarten, meteen een "0" naar buiten sturen
ctr = 0 ' Alle "variabelen" vooraf goed instellen
cur = IN7
prev = cur
total = 0
DO ' En "pollen" maar, steeds opnieuw kijken wat er gebeurt...
cur = IN7
' Bij verandering, zal ctr op 1 komen te staan
ctr = ctr + (cur ^ prev & prev)
prev = cur
IF (ctr = 1) THEN
' Als dat gebeurt: teller ophogen
total = total + ctr
' En het resultaat printen
SEROUT 16, 16468, [DEC total]
SEROUT 16, 16468, [CR]
ENDIF
ctr = 0
LOOP
|