www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehrere Delays parallel


Autor: Tallin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tach,

wenn ich mir die üblichen Delay Loop Routinen ansehe, dann vernichten 
sie einfach Zeit, während der man nichts anderes tun kann. In der 
Steuerungstechnik benötigt man jedoch die Möglichkeit, mehrere Delays 
parallel zur gleichen Zeit ablaufen zu lassen. So sind zum Beispiel in 
Speicherprogrammierbaren Steuerungen (SPS), wo diese delays "Timer" 
heißen (hat nichts mit den Timern in Microcontrollern zu tun), eine 
dreistellige Anzahl parallel laufender Timer keine Seltenheit. Dafür 
bieten diese SPS-Timer keine hundertprozentige Genauigkeit und können 
bisweilen ein wenig in der Dauer schwanken. (genauer gesagt, um eine 
Zykluszeit der SPS)

Es wird klar, dass die reine Zeitvernichtungsmethode in Loops hier nicht 
funktioniert, da dann nur eine Zeit und nicht mehrere parallel ablaufen 
können. Andere hier im Forum existierende Nachbildungen von SPS 
verbraten pro SPS Timer einen Hardware-Timer des AVR. Eine dreistellige 
Anzahl von Timern ist damit also nicht zu erreichen.

Kennt jemand ein Programmbeispiel, bei dem mehrere parallele "Timer" 
(delays) parallel ablaufen können? Um deren Funktionieren zu 
verifizieren, könnte ich dieses so umschreiben, dass man für 14 Timer 14 
Controller-Eingangspins als Timereingänge hernimmt und 14 
Controller-Ausgangspins als Timerausgänge. Dann könnte man mit einem 
Oszilloskop überprüfen, ob die Funktion korrekt ist.

Autor: Gustav K. (hanibal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du nimmst einen timer (den vom microkontroller) und lässt den jede ms 
ein interrupt auslösen. in dem interrupt setzt du ein flag. in der 
hautschleife liest du das flag aus, und wenn das flag gesetzt ist, 
variable hochzählen, und auf bestimmte zählerstände überprüfen. und flag 
zurücksetzten nicht vergessen, am besten direkt nach der überprüfung.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.