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
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.
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
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.