Hucky3000
Geocacher
Tach !
Ich bin so langsam am verzweifeln - blicke es nicht.
Hier einmal eine kurze Übersicht der Funktion (siehe Bild):
Die linke und die rechte Seite habe ich vorab getrennt und so verdrahtet wie ich es brauche.
Die beiden Strippen liegen auf Masse.
Wenn keine, oder auch nur eine der beiden Leitungen in der Luft hängt passiert nichts.
Die linken Kontakte sind bis auf die 8 Früchte/Gemüse alle parallel geschaltet (PC.0), dementsprechend die rechten bis auf die zugehörigen englischen Bezeichnungen auf PC.1.
Die einzelnen Früchte/Gemüse liegen verteilt auf den PORTB (PB.0 - PB.7), die entsprechenden dazugehörigen Texte auf dem PORTD.
Wenn ich nun z.B. die Kirsche zusammen mit "cherry" wähle soll die LED 2x blinken.
Für die Karotte brauche ich die Zahl "0", also soll die LED aus bleiben.
Bei der Kartoffel in Kombination mit Potatoes soll die LED 7 x blinken usw.
Bei ALLEN anderen Kombinationen soll die LED "falsch" blinken sobald eine Strippe auf einem linken, UND die andere Strippe auf einem rechten Kontakt ist.
Jetzt habe ich folgendes Problem:
Bei PB0+PD0 soll die LED 2x blinken, tut sie aber auch bei:
PB0 + PC1
PB0 + PD5
PB0 + PD6
Bei PB2+PD2 soll die LED 8x blinken, tut sie aber auch bei:
PB2+PD4
Bei PB5 + PD5 soll die LED auch 8x blinken, tut sie aber auch bei:
PB5+PC1
PB5+PD0
PB5+PD6
Bei PB6 + PD6 soll die LED 1x blinken, tut sie aber auch bei
PB6+PC1
PB6+PD0
PB6+PD5
Bei PB7+PD7 soll die LED 7x blinken, tut sie aber auch bei
PC0+PD7
Das MUSS doch so laufen. Alle anderen Kombinationen funktionieren wie sie sollen ! Das mus irgendetwas mit den Mehrfachfunktionen diverser Eingänge zu tu haben - denke ich.
Her der Code:
Ich bin so langsam am verzweifeln - blicke es nicht.
Hier einmal eine kurze Übersicht der Funktion (siehe Bild):
Die linke und die rechte Seite habe ich vorab getrennt und so verdrahtet wie ich es brauche.
Die beiden Strippen liegen auf Masse.
Wenn keine, oder auch nur eine der beiden Leitungen in der Luft hängt passiert nichts.
Die linken Kontakte sind bis auf die 8 Früchte/Gemüse alle parallel geschaltet (PC.0), dementsprechend die rechten bis auf die zugehörigen englischen Bezeichnungen auf PC.1.
Die einzelnen Früchte/Gemüse liegen verteilt auf den PORTB (PB.0 - PB.7), die entsprechenden dazugehörigen Texte auf dem PORTD.
Wenn ich nun z.B. die Kirsche zusammen mit "cherry" wähle soll die LED 2x blinken.
Für die Karotte brauche ich die Zahl "0", also soll die LED aus bleiben.
Bei der Kartoffel in Kombination mit Potatoes soll die LED 7 x blinken usw.
Bei ALLEN anderen Kombinationen soll die LED "falsch" blinken sobald eine Strippe auf einem linken, UND die andere Strippe auf einem rechten Kontakt ist.
Jetzt habe ich folgendes Problem:
Bei PB0+PD0 soll die LED 2x blinken, tut sie aber auch bei:
PB0 + PC1
PB0 + PD5
PB0 + PD6
Bei PB2+PD2 soll die LED 8x blinken, tut sie aber auch bei:
PB2+PD4
Bei PB5 + PD5 soll die LED auch 8x blinken, tut sie aber auch bei:
PB5+PC1
PB5+PD0
PB5+PD6
Bei PB6 + PD6 soll die LED 1x blinken, tut sie aber auch bei
PB6+PC1
PB6+PD0
PB6+PD5
Bei PB7+PD7 soll die LED 7x blinken, tut sie aber auch bei
PC0+PD7
Das MUSS doch so laufen. Alle anderen Kombinationen funktionieren wie sie sollen ! Das mus irgendetwas mit den Mehrfachfunktionen diverser Eingänge zu tu haben - denke ich.
Her der Code:
Code:
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 8
$framesize = 24
Config Portb = &B00000000 'PortB = linke Seite
Config Portd = &B00000000 'PortD = rechte Seite
Config Portc = &B00000100 'PortE = Kontakte (2x) und LED (Bit 0-2)
Portb = &B11111111 'Pull Up für 8 Bit aktivieren - PortB
Portd = &B11111111 'Pull Up für 8 Bit aktivieren - PortD
Portc = &B00000011 'Pull Up für Bit 0+1 aktivieren - PortC
Dim Z As Byte
Dim I As Byte
Dim A As Byte
Dim B As Byte
Z = 0
Portc.2 = 0
Do
Gosub Abfrage
Gosub Anzeige
Loop
End
Abfrage:
Z = 0
If Pinc.0 = 0 And Pinc.1 = 0 Then Z = 255 '17+18
If Pinc.0 = 0 And Pind.0 = 0 Then Z = 255 '17+9
If Pinc.0 = 0 And Pind.1 = 0 Then Z = 255 '17+10
If Pinc.0 = 0 And Pind.2 = 0 Then Z = 255 '17+11
If Pinc.0 = 0 And Pind.3 = 0 Then Z = 255 '17+12
If Pinc.0 = 0 And Pind.4 = 0 Then Z = 255 '17+13
If Pinc.0 = 0 And Pind.5 = 0 Then Z = 255 '17+14
If Pinc.0 = 0 And Pind.6 = 0 Then Z = 255 '17+15
If Pinc.0 = 0 And Pind.7 = 0 Then Z = 255 '17+16
If Pinc.1 = 0 And Pinb.0 = 0 Then Z = 255 '18+1
If Pinc.1 = 0 And Pinb.1 = 0 Then Z = 255 '18+2
If Pinc.1 = 0 And Pinb.2 = 0 Then Z = 255 '18+3
If Pinc.1 = 0 And Pinb.3 = 0 Then Z = 255 '18+4
If Pinc.1 = 0 And Pinb.4 = 0 Then Z = 255 '18+5
If Pinc.1 = 0 And Pinb.5 = 0 Then Z = 255 '18+6
If Pinc.1 = 0 And Pinb.6 = 0 Then Z = 255 '18+7
If Pinc.1 = 0 And Pinb.7 = 0 Then Z = 255 '18+8
If Pinb.0 = 0 And Pind.1 = 0 Then Z = 255 '1+10
If Pinb.0 = 0 And Pind.2 = 0 Then Z = 255 '1+11
If Pinb.0 = 0 And Pind.3 = 0 Then Z = 255 '1+12
If Pinb.0 = 0 And Pind.4 = 0 Then Z = 255 '1+13
If Pinb.0 = 0 And Pind.5 = 0 Then Z = 255 '1+14
If Pinb.0 = 0 And Pind.6 = 0 Then Z = 255 '1+15
If Pinb.0 = 0 And Pind.7 = 0 Then Z = 255 '1+16
If Pinb.1 = 0 And Pind.0 = 0 Then Z = 255 '2+9
If Pinb.1 = 0 And Pind.2 = 0 Then Z = 255 '2+11
If Pinb.1 = 0 And Pind.3 = 0 Then Z = 255 '2+12
If Pinb.1 = 0 And Pind.4 = 0 Then Z = 255 '2+13
If Pinb.1 = 0 And Pind.5 = 0 Then Z = 255 '2+14
If Pinb.1 = 0 And Pind.6 = 0 Then Z = 255 '2+15
If Pinb.1 = 0 And Pind.7 = 0 Then Z = 255 '2+16
If Pinb.2 = 0 And Pind.0 = 0 Then Z = 255 '3+9
If Pinb.2 = 0 And Pind.1 = 0 Then Z = 255 '3+10
If Pinb.2 = 0 And Pind.3 = 0 Then Z = 255 '3+12
If Pinb.2 = 0 And Pind.4 = 0 Then Z = 255 '3+13
If Pinb.2 = 0 And Pind.5 = 0 Then Z = 255 '3+14
If Pinb.2 = 0 And Pind.6 = 0 Then Z = 255 '3+15
If Pinb.2 = 0 And Pind.7 = 0 Then Z = 255 '3+16
If Pinb.3 = 0 And Pind.0 = 0 Then Z = 255 '4+9
If Pinb.3 = 0 And Pind.1 = 0 Then Z = 255 '4+10
If Pinb.3 = 0 And Pind.2 = 0 Then Z = 255 '4+11
If Pinb.3 = 0 And Pind.4 = 0 Then Z = 255 '4+13
If Pinb.3 = 0 And Pind.5 = 0 Then Z = 255 '4+14
If Pinb.3 = 0 And Pind.6 = 0 Then Z = 255 '4+15
If Pinb.3 = 0 And Pind.7 = 0 Then Z = 255 '4+16
If Pinb.4 = 0 And Pind.0 = 0 Then Z = 255 '5+9
If Pinb.4 = 0 And Pind.1 = 0 Then Z = 255 '5+10
If Pinb.4 = 0 And Pind.2 = 0 Then Z = 255 '5+11
If Pinb.4 = 0 And Pind.3 = 0 Then Z = 255 '5+12
If Pinb.4 = 0 And Pind.5 = 0 Then Z = 255 '5+14
If Pinb.4 = 0 And Pind.6 = 0 Then Z = 255 '5+15
If Pinb.4 = 0 And Pind.7 = 0 Then Z = 255 '5+16
If Pinb.5 = 0 And Pind.0 = 0 Then Z = 255 '6+9
If Pinb.5 = 0 And Pind.1 = 0 Then Z = 255 '6+10
If Pinb.5 = 0 And Pind.2 = 0 Then Z = 255 '6+11
If Pinb.5 = 0 And Pind.3 = 0 Then Z = 255 '6+12
If Pinb.5 = 0 And Pind.4 = 0 Then Z = 255 '6+13
If Pinb.5 = 0 And Pind.6 = 0 Then Z = 255 '6+15
If Pinb.5 = 0 And Pind.7 = 0 Then Z = 255 '6+16
If Pinb.6 = 0 And Pind.0 = 0 Then Z = 255 '7+9
If Pinb.6 = 0 And Pind.1 = 0 Then Z = 255 '7+10
If Pinb.6 = 0 And Pind.2 = 0 Then Z = 255 '7+11
If Pinb.6 = 0 And Pind.3 = 0 Then Z = 255 '7+12
If Pinb.6 = 0 And Pind.4 = 0 Then Z = 255 '7+13
If Pinb.6 = 0 And Pind.5 = 0 Then Z = 255 '7+14
If Pinb.6 = 0 And Pind.7 = 0 Then Z = 255 '7+16
If Pinb.7 = 0 And Pind.0 = 0 Then Z = 255 '8+9
If Pinb.7 = 0 And Pind.1 = 0 Then Z = 255 '8+10
If Pinb.7 = 0 And Pind.2 = 0 Then Z = 255 '8+11
If Pinb.7 = 0 And Pind.3 = 0 Then Z = 255 '8+12
If Pinb.7 = 0 And Pind.4 = 0 Then Z = 255 '8+13
If Pinb.7 = 0 And Pind.5 = 0 Then Z = 255 '8+14
If Pinb.7 = 0 And Pind.6 = 0 Then Z = 255 '8+15
If Pinb.0 = 0 And Pind.0 = 0 Then Z = 2 'Kirschen 1+9
If Pinb.1 = 0 And Pind.1 = 0 Then Z = 3 'Melone 2+10
If Pinb.2 = 0 And Pind.2 = 0 Then Z = 8 'Erdbeere 3+11
If Pinb.3 = 0 And Pind.3 = 0 Then Z = 5 'Radieschen 4+12
If Pinb.4 = 0 And Pind.4 = 0 Then Z = 0 'Karotte 5+13
If Pinb.5 = 0 And Pind.5 = 0 Then Z = 8 'Pilz 6+14
If Pinb.6 = 0 And Pind.6 = 0 Then Z = 1 'Birne 7+15
If Pinb.7 = 0 And Pind.7 = 0 Then Z = 7 'Kartoffeln 8+16
Return
Anzeige:
If Z = 255 Then
Gosub Falsch
Elseif Z = 0 Then
Return
Else
Gosub Blinki
End If
Return
Blinki:
For I = 1 To Z
Portc.2 = 1
Waitms 300
Portc.2 = 0
Waitms 400
Next I
Wait 1
Return
Falsch:
For I = 1 To 3
Portc.2 = 1
Waitms 200
Portc.2 = 0
Waitms 200
Next I
Wait 1
Return