Hi ich habe hier ein Programm geschrieben dass verschiedene Leds auf Tastendruck einschalten soll. Könnt ihr mir den Fehler sagen? Wenn man sich das auf dem STK500 anguckt, dann leuchten immer schwach die LED4,LED5,LED6. Gruß MAX
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
Habt ihr eine Erklärung dafür,warum bei Nichtdrücken eines Tasters trotzdem 3Leds schwach leuchten?
"Habt ihr eine Erklärung dafür,warum bei Nichtdrücken eines Tasters trotzdem 3Leds schwach leuchten?" Zieh mal das ISP-Kabel ab. Trotzdem ist Dein Code bestimmt nicht das, was Du vorhast. Peter
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
HI Andi , danke für deine Antwort. Deine Erklärung verstehe ich, aber mit den Variablen funktioniert nun überhaupt nichts mehr(: Was könnte man da noch machen?
Dann check mal die LED´s ob die auch wirklich auf GND leuchten: VCC -> Vorwiderstand -> Anode -> Katode -> PortB. MfG Andi
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
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
Ach ja, am Programmstart (Init) kannst Du noch "DDRB=255" schreiben, damit ist der PortB sicher als Ausgang. MfG Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.