Ich glaube es ist Arduino-Hardware.
Aber so sollte es funktionieren:
Alles anzeigen
Aber so sollte es funktionieren:
Quellcode
- $Regfile = "m328pdef.dat"
- $Crystal = 16000000
- Config SubMode = New
- ' ----------------------------------------------
- ' Dauer Low-Puls messen, Auflösung 5µs
- ' Rückgabe in 5µs Schritten
- ' Beispiel: Rückgabe 4 bedeutet Dauer war 4 x 5µs
- ' ----------------------------------------------
- Function myPulseIn() as Word
- Local tmpTimeout as Word
- Local tmpDauer as Word : tmpDauer = 0
- tmpDauer = 0 ' Pulsdauer auf 0
- tmpTimeout = 80 ' Timeout 400µs = 80x5µs
- BitWait PinB.1 , Set ' Warten auf High
- ' Schleifendurchlauf 5µs
- While PinB.1 = 0 ' Messen Low-Puls
- Incr tmpDauer
- Decr tmpTimeout
- If tmpTimeout = 0 then
- Exit While
- End If
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- NOP
- Wend
- myPulseIn = tmpDauer
- End Function
- Dim Value as Word
- Do
- Value = myPulseIn()
- Loop