Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Programmierproblem?!? Kategorie: Programmierung (von Frank - 2.09.2005 21:20)
Als Antwort auf Re: Programmierproblem?!? von krassos - 1.09.2005 22:23

> > Hallo!!
> > Ich habe ein kleines Programmierproblem, vielleicht hat einer eine Gute Idee!!
> > Und zwar muss ich auf einen Tastendruck eine bestimmte Aktion ausführen. Vorher habe ich gewählt
> > ob sie ständig oder einmalig ausgeführt werden soll! (Dieses habe ich in einer Variablen, entweder 1
> > oder 2!)
> > nun kommt mein Tastendruck (Port10) und die Schleife soll durchlaufen, einmalig halt nur einmal und
> > ständig so oft bis ich wieder drücke!
>
> Hallo,
>
> dazu fällt mir spontan mal eben dieses Konstrukt ein:
> (es sollte sogar funzen)
>
>
> int staendig,hilfsmerker1,hilfsmerker2,taste;
> // staendig=0   ist einmal ausfĂĽhren , staendig = 1 ist dauernd ausfĂĽhren
>
> if taste and ! hilfsmerker
>    {
>    if staendig
>       {
>       hilfsmerker2 = hilfsmerker2 xor -1  //status von hilfsmerker umschalten
>       }
>    else
>       {
>       aufruf.funktion();
>       }
>    hilfsmerker = taste;
>    }
>
> if hilfsmerker2 aufruf.funktion();
>
>

>
>
> >
> > Wie bekomme ich dieses wohl hin und vorallem wie frage ich den Taster beim 2. drĂĽcken (also Stopp)
> > nochmal ab wen die Schleife z.B. 10 Sekunden dauert? Ich möchte ja nicht bis zu 10 Sekunden den
> > Taster gedrĂĽckt halten bis z.B. dieser in meiner Schleifenbedingung abgefragt wird....
>
> Das oben gezeigte Konstrukt sollte genau das beschriebene Problem lösen.
> Einen PferdefuĂ? gibt es allerdings:
> Wenn Du sleep - Programmierer bist bekommst Du genau das von Dir schon
> erkannte Problem mit den z.B. 10 sek.
> Hier hilft konsequentes vermeiden von sleep in diesem Thread und den aufgerufenen
> Funktionen, zumindest wenn diese ĂĽber ein paar Millisekunden liegen.
> Stattdessen lä�t sich ein Timer programmieren, der auf dem Systemtimer basiert.
> Dadurch läuft Dein Thread sehr schnell ab. Wenn Du jetzt eine verzögerte Funtion in dem Thread brauchst,
> legst Du den Thread nicht schlafen, sondern setzt einen Timer und fragst diesen in jedem Zyklus
> ab auf seinen Status.
>
> Dadurch kann Dein Thread auch viel mehr Aufgaben erledigen, da er immer mit voller Geschwindigkeit
> abläuft.
>
> GruĂ? krassos


Hallo Krassos,

welchen Timer die Systemuhrzeit (DFC) oder den Umlaufendentimer, ich benötige Zeitenverzögerungen
um die 30 - 120 Sekunden. Beispiel?

Danke Frank


    Antwort schreiben


Antworten:

Re: Programmierproblem?!? (von krassos - 3.09.2005 7:42)