Es ist aber auch ein wenig schwierig, das Konzept in dem Code zu erkennen.
Zum einen habe ich es im Simulator gerade mal getestet: Mit der Do-Loop-Schleife im Unterprogramm wird der Return-Befehl niemals erreicht. Wozu soll das denn gut sein???
Und der Sinn des Unterprogramms Wait_one erschließt sich auch nicht ohne weiteres (selbst wenn man sich die Do-Loop-Schleife wegdenkt):
Code:
Wait_one:
Do
If Pind.0 = 0 Then
Return
End If
Loop
Return
Das heißt doch im Klartext: Wenn PIND.0 = 0, dann folgt return - und wenn nicht, dann auch
Vielleicht stehe ich ja nur auf dem Schlauch (das ist um diese Uhrzeit manchmal der Fall) - aber ich kann beim besten Willen nicht erkennen, wozu diese Sub gut sei soll.
Du willst doch nur den Zeitabstand zwischen zwei fallenden Flanken messen. Warum legst Du das Signal nicht einfach auf einen der Interrupt-Eingänge, konfigurierst ihn auf falling, und liest in der ISR den Timerinhalt aus?
Lesezeichen