mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multitask ???


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

Hab da mal ne Frage an euch,
in einer do Routine frage ich Portpins ab,
wird jetzt eine Taste gedrückt springt das programm in eine 
unterroutine...
meine Frage ist jetzt, wie kann ich in die unterroutine springen und 
sofort wieder in die Portpinabfrage, ohne das die auszuführende 
unterroutine abgebrochen wird ?????


P.S. Programmiere mit bascom AVR


Vielen Dank schon mal

Autor: Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn die tastenabfrage im hauptprogramm erfolgt, kann der nächste 
tastendruck erst wieder nach rücksprung aus der unterroutine erkannt 
werden. dauert diese länger als die zeit bis zum nächsten tastendruck, 
so geht dieser verloren. die echtzeitbedingung ist nicht erfüllt.
ein ausweg könnte sein, mit dem tastendruck einen interrupt zu erzeugen 
und im interruptprogramm nur das ereignis "taste gedrückt" in eine 
warteschlage zu schreiben. das geht sehr schnell und der interrupt ist 
wieder bereit. die aufwendige abarbeitung der warteschlage kann dann das 
hauptprogramm übernehmen.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

das selbe versuche ich gerade mit einer fensterhebersteuerung unter dem 
thread "starthilfe programmierung". es geht darum ein fenster z.b. acht 
sek. fahren zu lassen und während dieser zeit noch auf andere fenster 
(schalter) reagieren zu können. uwe hat mir da sehr geholfen, code ist 
in den beiträgen enthalten oder angehängt.

gruß,
matthias

Autor: Frankl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timertask mit dem Timeroverflow dort werden die Events gesteuert (mit 
Flags)dadurch kannst du die einzelnen Tasks = Abfrage Taste mit 
Prelldelay und das Hauptprogramm "parallel" abarbeiten lassen. Wenn das 
Hauptprogramm auf Zeitevents warten muß, springe übers Hauptprogramm und 
dann die Tastenabfrage mit Prelldelay.

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.