Hallo
Ich habe Dein Prog mal im Simulator getestet.
So funktionierte es nicht. Ich habe dabei auch ein paar Schreibfehler von mir entdeckt.
Print ohne =
und Elseif wird natürlich zusammen geschreiben
als Hinweis noch , die regfiledateien enden meistens mit "dat"
also hier dann der Code wie er im Simulator funktioniert
Code:
$regfile = "m8def.dat"
$crystal = 3686400 'Quarz: 3.6864 MHz
Ddrd = &B0000000 'eingänge
Ddrc = &B1111111 'ausgänge
Portd = 2
'PD0-PD7 = Sensoren
'PC0-PC7 = Motorsteuerung
Baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 1
Dim X As Bit
Do
X = Pind.1
If X = 0 Then
Print "Kein Stein an Position 1"
Elseif X = 1 Then
Print "Stein an Position 1"
End If
Loop
End
Wenn Du , um es im Simulator zu testen, als erste Zeile $SIM einfügst, läuft es schneller. Bevor Du es aber in den MicroC überträgst, müßt Du das wieder entfernen.
Das Elseif, das ich beim erstenmal genommen habe, ist natürlich quatsch, da ja ein Bit nur 2 Zustände haben kann.
Die Variable x, habe ich deshalb eingesetz, weil die Abfraqe mit Pind.1 einfach nicht funktionieren wollte , weiß bis jetzt aber noch nicht genau warum.
Ich habe auch mal select case probiert, der Vorteil hier man kann dadurch mehrere Tasten auf einmal bestimmen.
Bsp.
SELECT CASE Pind
CASE 0
Print "Keine Taste"
CASE 1
Print "Taste 1"
CASE 2
Print "Taste 2"
CASE 3
Print "Taste 1 +2"
END SELECT
Mir ist dabei aber was seltsames aufgefallen, uzw. hat x immer den entgegengesetzen Wert von Pind.1 (d.h ist Pind.1=0 dann ist x=1)
vielleicht hat ja mal jemand darauf eine Antwort , würde mich sehr interessieren.
Gruß Andreas
Lesezeichen