LED auf STK500

Gast #73030
Lesenswert?
• ▲
▼
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
Gast #73033
Lesenswert?
• ▲
▼
@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.
Gast #73035
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.