PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem: LED Balken-Lauflicht programmieren mit Bascom-8051



Matthiasbaue
22.08.2006, 21:12
Hallo, ich habe folgendes Problem:
ich muß ein Led Lauflicht mit Basic in Bascom programmieren, aber leider fange ich jetzt erst auf dem Gebiet des Microkontrollers an.

Aufgabenstellung:
Es gibt zwei LED Balkenlauflichter mit 13 LEDs, die jeweils mit einem Taster getastet werden. Beim ersten Tasten soll die dazugehörenden Leds angesteuert werden - das heißt
1 Led an; 0 0000 0000 0001
1 sek Pause
2 Led an; 0 0000 0000 0011
1 sek Pause
3 Led an; 0 0000 0000 0111
1 sek Pause
...
13 Led an; 1 1111 1111 1111

Zweite mal Tasten
13 Led aus; 1 1111 1111 1111
1 sek Pause
12 Led aus; 0 1111 1111 1111
1 sek Pause
0 0111 1111 1111
und so weiter.

Das Problem:
Wenn ich das programmiere, kann beim Tasten immer nur ein LED Lauflicht anlaufen, weil das Programm in der Warteschleife von einer Sekunde ist, um die nächste LED anzusteuern und der zweite Taster für das zweite Led Lauflicht nicht mehr abgefragt werden kann (erst wieder nach 13 sek).

Wie kann ich programmieren, dass die beiden Taster immer abgefragt werden und entsprechent beide LAUFLICHTER unabhänig voneinander funktionieren?

MFG
Matthias

franzl
22.08.2006, 21:50
hallo,
du könntest die beiden taster auf einen externen interrupt legen, dadurch wird dein programm immer unterbrochen wenn eine taste gedrückt wird.
mfg franzl

Andree-HB
22.08.2006, 22:36
...oder einfach zwischen den einzelnen LED`s eine IF-Abfrage auf die Taster setzen und damit ggfls. in eine Sub oder Sprungmarke springen.

Matthiasbaue
23.08.2006, 15:24
Hallo,
vielen Dank für Eure Antworten.
Ich weiß leider nicht, wie ich es programmieren soll, dass wenn die If Abfrage erfüllt ist und das 2. LED Lauflicht angesteuert wird, das Programm immer zwischen den beiden Zeitschleifen hin- und herspringt, damit die Leds immer mit einer Verzögerung von 1 sek angeschaltet werden.

MFG
Matthias

Andree-HB
23.08.2006, 16:14
Ich weiss ehrlich gesagt nicht so ganz, was Du genau möchtest - setze doch in beide "Lauflichter" nach jedem Einzelschritt eine If-Abfrage, die dann, je nach Taster, zu einer Sprungmarke an den Anfang des Lauflichtes geht.

Damit kannst Du jederzeit mit einer der beiden Tasten Deine Lauflicht in die Richtung Deiner Wahl erneut starten.

Matthiasbaue
28.08.2006, 15:14
Die Idee mir den If Abfragen hat sehr gut funktioniert, aber jetzt habe ich ein weiteres Problem.
Der Port 0 an meinem Mikrocontoller AT 89S8252 läst sich nicht schalten, es passiert garnichts. Ist er kaputt, oder muß ich in Bascom oder so, was einstellen damit er funktioniert?

MFG
Matthias