Hmmm...also irgendwie stimmt hier was nicht...

...ich hab jetzt den Code so wie anbei angehängt. Jetzt flackert zwar nichts mehr aber das Programm funktioniert auch nicht.

Ich hab mir zum Debuggen mal zwei LEDs angehängt (PB.0 und PB.1)...

Folgendes Verhalten tritt auf:

Nach dem Einschalten erscheint auf dem LCD wie erwartet

*** Test 1 ***
Lrn Prg Tst Fw?

Soweit so gut! Nun würde ich erwarten, dass beim Drücken des Tasters, der an PD.0 hängt in der unteren Zeile Test1 ausgegeben wird und durch das Cls der Rest vom LCD gelöscht wird. Das passiert aber nicht. Daher hab ich mir mal die LEDs im Programm gesetzt, da ich gedacht hab, das Programm würde nicht zu Pr: spingen - tut es aber. Nach Druck auf den Taster geht zunächste die LED PB.0 aus, dann nach 2 Sek. auch PB.1. Nur die LCD Anweisungen werden anscheinend nicht ausgeführt!

Nur warum???


Code:
$regfile = "m16def.dat"
$crystal = 16000000



'**** Konstanten ****

Const Fw_rev = "0.9"




'**** LCD Initialisieren ****

Dim ___lcdno As Bit
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.5 , Db6 = Porta.7 , Db7 = Porta.2 , E = Porta.0 , Rs = Porta.1




'**** Variablendeklaration ****





'**** Ports etc. Parametrieren ****


Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Input
Config Portd.3 = Input

Config Pind.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input

Config Portb.0 = Output
Config Portb.1 = Output

'**** Sprungverteiler

Cls

Do


Cursor Off
Upperline
Lcd " *** Test 1 *** "
Lowerline
Lcd "Lrn Prg Tst Fw?"



Debounce Pind.0 , 0 , Pr



Loop

End


Pr:
Cls
Lowerline
Lcd "test1"
Portb.0 = 1
Waitms 2000
Portb.1 = 1