www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger myAVR LPT Board


Autor: Klas Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin zusammen,

ich habe nun für eine bestimmte Anwendung auf dieses Board 
zurückgegriffen, nachdem andere Versuche mit einzelnen IC's nicht so 
wirklich erfolgreich waren (außer mit einem Interface Board, aber immer 
nen Rechner laufen lassen für die Anwendung wollte ich auch nicht). Da 
ich programmiertechnisch zwar schon über "Hallo Welt" aber noch lange 
nicht weit liege hab ich ein paar Fragen.

Das Programm was ich auf den µC laden will soll folgendes erfüllen:

Angeschlossen sind 1 Taster und 3 Soundmodule vom C (trigger eingang).

Wird der Taster nun gedrückt wird zunächst das 1. Modul getriggert und 
läuft ab, während dieser Zeit (sagen wir mal 20s) ist das System für 
einen weiteren Tastendruck gesperrt. Wird der Taster nun nach dieser 
Zeit erneut gedrückt läuft das 2. Modul ab (ebenfalls 20s Sperre) und 
beim 3. Druck das 3. Modul. Drückt die Person noch ein 4. Mal den Taster 
so passiert nichts und das System sperrt sich für 2-3min um dann wieder 
von vorn zu beginnen (also Taster wird gedrückt --> Modul 1). Zusätzlich 
muss aus jeder Stellung nach 2-3min ein Reset ausgeführt werden, sofern 
es zu keinem weiteren Druck kommt, sodass mit dem nächsten Tastendruck 
nach dieser Frist wieder bei Modul 1 begonnen wird.

Ich hatte anfangs gedacht, dass ich mir das vielleicht aus einem Code 
ableiten kann der auf einem Lauflicht basiert (nur das ich eben den Takt 
mit dem Taster vorgebe, aber bisher hab ich nichts passendes gefunden).

Vielleicht könnt Ihr mir ja einen Tip geben.

Gruß,
Klas

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klas Meyer schrieb:

> Vielleicht könnt Ihr mir ja einen Tip geben.

Zeichne dir ein Zustandsdiagramm.
Was muss pasieren, damit dein Programm von einem Zustand in einen 
anderen Zustand übergeht.
Jeder Zustand ist ein Kreis, der einen Namen hat. Von einem Kreis gehen 
Pfeile zu einem anderen Zustand. Bei jedem Pfeil steht dabei, unter 
welcher Bedingung dieser Weg genommen wird und u.U welche Aktion dabei 
ausgeführt werden soll.

Damit hast du ein Werkzeug, welches dir erlaubt die Logik deiner 
'Maschine' zu symbolisieren und welches sich auch einfach in ein 
Programm umsetzen lässt, wenn die Logik dann steht. Zudem kann man die 
'Maschine' auch auf dem Papier leicht testen. Ein Radiergummi auf einem 
Kreis ist der Zustand, in dem sich die Maschine zur Zeit befindet. Jetzt 
erfindest du alle möglichen Eingabebedingungen und siehst nach ob es 
dafür einen Pfeil gibt, der ihn behandelt. Wenn es einen gibt, dann 
verschiebst du den Radiergummi dorthin und das Spielchen geht von vorne 
los: Erfinde alle möglichen Eingabebedingungen und sieh nach was deine 
Maschine damit macht.
Du kannst auch davon ausgehen, dass es abseits von deiner Maschine so 
etwas wie eine Stoppuhr gibt, die du auf eine bestimmte Zeit einstellst 
und die dann von alleine bis auf 0 runterzählt. Du kannst die Uhr 
jederzeit nach der noch abzulaufenden Zeit fragen und das Ablaufen der 
Uhr stellt ein Eingabeereignis dar.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.