Hey,
Ich möchte in der nächsten Zeit eine Geschwindigkeitsanzeige programmieren. Nun habe ich erstmal angefangen etwas zu programmieren, damit eine Zahl bei jeder steigenden Taktflanke, die durch einen einfachen Schalter ausgelöst werden soll um 1 erhöht wird. Im Bascom-Simulator funktioniert das Programm. In der Realität sieht es jedoch folgendermaßen aus: Solange der Schalter nicht betätigt ist, zählt das Programm einfach schnell nach oben ohne Halt. Sobald man den Schalter betätigt, bleibt der Zähler stehen. Löst man den Schalter wieder, zählt das Programm weiter.
Woran kann das liegen?
Folgendes ist der Quellcode:
Code:
$sim
$regfile = "m32def.dat"
$crystal = 16000000
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Portd.2 = Input
Config Int0 = Rising
Enable Interrupts
Enable Int0
Cls

Initlcd
Dim D As Integer
Enable Interrupts


Config Lcd = 20 * 4
D = 0
On Int0 Abc
Do
Initlcd
Cls
Lcd D
Loop
End

Abc:
D = D + 1
Return