Hallo Leute
Ich habe ein Phänomen festgestellt beim Erstellen einer Funktion zur Entprellung einer Taste.
Die Function liefert immer True zurück, gibt also vor, die Taste sei gedrückt.Code:' Lauffähiges Testprogramm für Simulator ' zur Veranschaulichung des Problems $regfile = "m8def.dat" $hwstack = 30 $Swstack = 30 $framesize = 35 $Crystal = 800000 $Baud = 19200 $Sim ' Allgemeine Deklarationen Const True = 1 Const False = 0 Const LowLevel = 0 ' Tastenpegel Low Const HighLevel = 1 ' Tastenpegel High Key_Taste Alias PinB.1 ' Abzufragende Taste/Pin Set Key_Taste ' PullUp an Declare Function getKeyTaste(Byval Level as Byte) as Byte Do ' Irgendwo in der Hauptschleife ' Die Abfrage der Taste If getKeyTaste(LowLevel) = True then ' Taste ist Low-Aktiv Print "gedrueckt" Else Print "nicht gedrückt" End If Loop ' Die Function liefert immer True (taste gedrückt) Function getKeyTaste(Byval Level as Byte) as Byte getKeyTaste = False ' Rückgabewert zunächst auf falsch (Taste nicht gedrückt) If Key_Taste = Level.0 then ' Pinpegel = Vorgabepegel? Waitms 30 ' Entprelldauer abwarten If Key_Taste = Level.0 then ' Pinpegel noch immer = Vorgabepegel? getKeyTaste = True ' Rückgabewert True (Taste aktiv gedrückt) End If End If End Function
Kann mir jemand sagen, ob das ein Bug ist?
Ich verwende Bascom Vollversion 2.0.7.8 (aktuelle, offizielle Version)
Bitte um Infos.
Micha







Zitieren

Lesezeichen