Programmkorrektur

Gast #176383
Lesenswert?

Hi sorry (;

Hier ist der Code:

$regfile = "2313def.dat"
$crystal = 3686400
Dim X As Byte
Config Portb = Output
Config Portd = Input

Portd = &B1111111
Portb = &B1111111

Do

If Pind.0 = 0 Then Portb = 250 Else Portb = 255             '1
If Pind.1 = 0 Then Portb = 193 Else Portb = 255             '2
If Pind.2 = 0 Then Portb = 208 Else Portb = 255             '3
If Pind.4 = 0 Then Portb = 184 Else Portb = 255             '4
If Pind.5 = 0 Then Portb = 148 Else Portb = 255             '5
If Pind.6 = 0 Then Portb = 132 Else Portb = 255             'R
If Pind.7 = 0 Then Portb = 143 Else Portb = 255             'L
Loop
Gast #176386
Lesenswert?

So, wie es aussieht, möchtest Du 7-Segment-LED´s steuern.
Das haut so nicht hin.
Wenn einer der 8 IF-Bedingungen erfüllt ist, müßtest Du den ganzen
IF-Block sofort verlassen, ansonsten wird das, was vorher auf low
gesetzt wurde von der nächsten IF-Bedingung, welche nicht zutrift,
wieder auf hi-Pegel gesetzt (255).
Mach es doch lieber mit Variablen wie z. B.:

Dim LEDVar as Byte

Do

LEDVar=255    'Wenn keine Taste gedrückt leuchtet keine LED
If Pind.0 = 0 Then LEDVar = 250             '1
If Pind.1 = 0 Then LEDVar = 193             '2
If Pind.2 = 0 Then LEDVar = 208             '3
If Pind.4 = 0 Then LEDVar = 184             '4
If Pind.5 = 0 Then LEDVar = 148             '5
If Pind.6 = 0 Then LEDVar = 132             'R
If Pind.7 = 0 Then LEDVar = 143             'L
Portb = LEDVar

Loop

MfG
Andi
Gast #176389
Lesenswert?

Hallo Andi ,
ich habe die Leds vom STK500 zum Test angeschlossen.
Ich habe durch den Befehl INPUT mir den Wert an die Variablen liefern
lassen. habe ich da im Terminalprogramm zB 208 geschrieben, dann
leuchtete die korrekte ledzusammensetzung. (also zB die2. und 5.Led)

MfG Max
Gast #176391
Lesenswert?

Dann probier erst mal einen Code ohne Schnickschnack wie z. B.:

PortB=255-1
End

Wenn die LED´s auf GND geschaltet sind müßte jetzt genau die LED an
PortB.0 leuchten. Wenn alle anderen leuchten, an PortB.1 bis PortB.7,
dann sind die hi-active.
Wenn das dann richtig geht dann probierst Du einfach 255-2,
255-4...255-128.
Zumindest hilft Dir das bei der Fehlersuche.

MfG
Andi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren