Multitask ???

Gast #13956
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
Gast #13957
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.
Gast #13958
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
Gast #13959
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

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.