Hallo Leute
Ich habe ein Phänomen festgestellt beim Erstellen einer Funktion zur Entprellung einer Taste.

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
Die Function liefert immer True zurück, gibt also vor, die Taste sei gedrückt.

Kann mir jemand sagen, ob das ein Bug ist?

Ich verwende Bascom Vollversion 2.0.7.8 (aktuelle, offizielle Version)

Bitte um Infos.

Micha