mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nacheinanderschalten von Ports


Autor: Sebi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe einen Reseteingang. Wenn ich diesen Betätige soll eine
Reihenfolge von Ausgängen im 1 Sekundentakt angesteuert werden. Welche
Lösungen schlagt ihr vor?
1. Sehr primitiv mittels delay die gewünschten Ports freischalten?
2. Mittels Timer die Werte aufrufen?
3. eine andere schöne Lösung.
Die Reihenfolge der Ausgangsport ist immer gleich.

Autor: Jens Kielmann (digger71)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebi,

falls der Prozessor keine anderen Aufgaben hat,
reicht wohl eine Lösung mit Delay.
Dann müsste man
-  das Delay als Subroutine anlegen
1. Die Ports initialisieren
2. In einer Endlosschleife
   -ersten Ausgang setzen
   -Delay aurufen
   -ersten Ausgang zurücksetzen
   -zweiten Ausgang setzen
   - Delay aufrufen
   ...
  - letzen Ausgang setzen
  - Delay aufrufen
  - letzten Ausgang zurücksetzen
3. zum Anfang der Schleife springen.

Eleganter ist eine Lösung mit Timer und Interrupt.
Dazu einen Timer laden (wenn es Taktfrequenz und
Vorteiler zulassen mit einem Wert für eine Sekunde.
(t=Taktperiode Timereingang  Vorteiler  Ladewert)

Bei jedem Interrupt den Nächsten Ausgang ansteuern
und den Timer nachladen.
Hat der Timer eine kürzere max.Periode,(z.B 0,2sec) einfach
im Interrupt eine Variable hochzählen,
Im Hauptprogramm den nächsten Ausgang ansteuern,
wenn diese Variable einen bestimmten Wert erreicht(z.B.5)hat
und diese Variable löschen.

Gruss
Digger

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.