Hallo Leute, ich bin absoluter Anfänger und habe gleich ein grosses Problem. Wenn ich mit BASCOM alle LED's auf meinem STK500 ausschalten will müsste ich doch so Erfolg haben: Config Portd = Input Config Portb = Output Portb.0 = 0 Portb.1 = 0 Portb.2 = 0 Portb.3 = 0 Portb.4 = 0 Portb.5 = 0 Portb.6 = 0 Portb.7 = 0 Loop: If Pind.0 = 0 Then Portb.0 = 0 Else Portb.0 = 1 goto loop Es klappt aber nicht, nur Portb.0 ist aus, alle Anderen leuchten. Was ist hier falsch ? Gruß Ralf
Handbuch aufschlagen - bis Kapitel 3.1 blättern und lesen. Wenn der Port-Pin 0 ist leuchtet die LED, du schaltest also alle LEDs ein. Die LED auf B0 müsste allerdings auf die Taste reagieren. grüsse leo9
Hallo Ralf: $regfile = "2313def.dat" Ddrd = 0 : Portd = 0 Ddrb = 255 : Portb = 255 Do If Pind.0 = 0 Then Portb = 0 Else Portb = 255 End If Loop das Prg.schaltet Portb ein und aus ThomasB.
@Leo9 Ok, so in etwa habe ich mir das schon gedacht. Was ich aber absolut nicht verstehe, das die LED an Portb.0 auf den Taster reagiert, d.h. Tastergedrückt - LED an. Sollte die LED nicht genau umgekehrt arbeiten ? @ThomasB danke - das kann ich schon mal gebrauchen.
Mit Portb.0 schaltest Du nur den einen Pin 0 des PortB um. Schau Dir nochmal das Programm von Thomas an, dort ist es richtig. Gruß, Frank
Die Tasten des STK500 reagieren auch invertiert: Wenn sie gedrückt werden, liegt am Eingang eine 0. Somit ist also deine Abfrage erfüllt. Einfacher könntest du es wohl so machen: loop: PortB.0 = PinD.0 goto loop (so in der Art geht es zumindest in C...) Hierbei reagiert nur Pin 0 von Port B auf Pin 0 von Port D. Thomas Programm schaltet alle LEDs bei dem Tastendruck ein. Willst du die zu den Tastern korrespondierenden LEDs schalten, müsste es in etwa so aussehen: loop: PortB = PinD goto loop Der Byte-Wert des Port D wird einfach in den Port B geschrieben. So leuchten die LEDs, deren Taster gedrückt werden. Disclaimer: Ich gehe jezt davon aus, dass das so funktionieren müsste. Es ist eine Vermutung, da ich selbst noch nie mit Bascom programmiert habe (und wohl auch nicht mehr werde). Basic-Erfahrungen hab ich vor Jahren mal gesammelt (APPLE ][) und schliesse jetzt aus diesem gefährlichen Halbwissen auf die Lösung. Deswegen kein Gewähr auf richtige Funktion. Sollte jemand etwas zu korrigieren haben, tue er dies bitte auch. Gruß Rahul
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.