Mehrere Befehle gleichzeitig ausführen

OP #2402842
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin grade dabei das AVR Assembler Tutorial zu machen. Bin beim 
Kapittel "Verglaiche". Ich wollte jetzt ein paar LED's blinken lassen. 
Blinken lassen kann ich Sie schon, aber ich will folgendes machen.
Wenn ich den Taster 1 drücke, sollen die ersten 2 LED's, in einem vorher 
bestimmten Muster, blinken. (Stellt ein Blaulicht dar)
Wenn ich den Taster 2 drücke, soll die 4 LED blinken. (Stellt einen 
Blinker dar)
Wenn ich den Taster 3 drücke, sollen beide befehle ausgeführt werden.

Natürlich kann ich jetzt 3 methoden schreiben, eine für Blaulicht, eine 
für blinke und eine die beides verreint. Aber wenn man jetzt immer mehr 
Ausgänge mit solchen Mustern belegt wird es ja irgendwann unmöglich alle 
Möglichkeiten von Verknüpfungen zu erstellen.
Gibt es hier einen Trick oder ähnliches um meine Idee zu realisieren? 
Oder muss ich tatsächlich alle Möglichkeiten selber erstellen?

Ich hoffe man versteht meine Frage und verzeihe mir wenn sie vll. eine 
wirkliche Anfägerfrage ist.

Mit freundlichen Grüßen
Snert
Gast #2402853
Lesenswert?
• ▲
▼
Skizziere dir eine Zeitschiene und mach 1-2 Spuren für das Blaulicht und 
1-4 Spuren für das Blinklicht.

Dann schau dir die Tutorials über den Timer und Interrupts an und 
überlege wie du den Timer so benutzt, dass der jedesmal zum Zug kommt, 
wenn eine Aktion auf den Spuren durchzuführen wäre.

Die Taster entscheiden dann nur über globale Variablen/Flags, ob die 
Aktion auch tatsächlich durchgeführt wird.

Bsp:
1
ZEIT [ms] 0  10  20  30  40  50  60  70  80  90
2
----------+---+---+---+---+---+---+---+---+---+-->
3
BLAU1     00000000111111110000000011111111000000...
4
BLAU2     111111110000000011111111000000... 
5
BLINKVR   00000000000011110000000000001111...
6
BLINKVL   00000000000011110000000000001111...
7
BLINKHR   00001111000000000000111100000000...
8
BLINKHL   00001111000000000000111100000000...

In diesem Beispiel wäre ein Timer nötig, der alle 10ms aktiv wird.

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.