Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Flankenerkennung Kategorie: Programmierung Basic (von Achim - 29.05.2006 23:46)
 Als Antwort auf Re: Flankenerkennung von Bremus - 29.05.2006 12:24
Achim nutzt:  CC1-Station V1.1
> > > Tipfunktion.
> > > Port 1 ist bis zu 0,5 sec. bestätigt - Port 2 , als Ausgang ist ON
> > > Port 1 wird wird vor den 0,5 sec. losgelassen - Port 2 , als Ausgang fällt wieder ab = OFF
> > > Dauerbetrieb/wie Eltako !!!!!
> > > Wenn Aber Port 1 länger als 0,5 Sec betätigt wird soll - Port 2 auf On bleiben, selbst wenn Port 1 wieder losgelassen wird. Erst wenn Port 1 ein zweites Mal betätigt wird  schaltet Port 2 wieder ab = off.
> >
> > Aber vermutlich nur, wenn Port 1 beim zweiten Mal kürzer als 0,5 betätigt wird, sonst widerspräche es ja obiger Regel?
> >
> > Du fragst den Zustand von p1 im Vergleich zum letzten gemerkten Zustand ab. Wenn er sich verändert, merkst Du Dir den neuen Zustand als alten und, falls betätigt, den Wert von timer und setzt P2. Falls losgelassen, berechnest Du abs(timer - alterTimer) und wenn das kleiner 25 ist, setzt Du P2 wieder auf OFF.
> >
> > Das funktioniert wegen des Wertebereiches von Timer nur, wenn P1 nie länger als ein paar Minuten gedrückt wird.

> Hast du zwei , drei Zeilen Code fĂĽr den Anfang durch den Rest versuch ichs dann selber.

Ungetestet:

oldP1=OFF
P2=OFF

#loop
 if P1= oldP1 then goto P1gleich ' keine Zustandsänderung
   oldP1 = P1  ' neuen Zustand merken
   if NOT P1 then goto P1Los
     ' P1 gedrueckt
     P1Timer = timer ' Startzeitpunkt P1 gedrĂĽckt merken
     P2 = ON
     goto EndeP1Test
  #P1Los
    ' P1 losgelassen
    if  abs (timer - P1Timer) < 25 then P2=OFF ' weniger als 0,5 Sekunden
  #EndeP1Test
 #P1gleich
 
 goto loop

HTH

Bye
 Achim

 Antwort schreiben

Bisherige Antworten:

Re: Flankenerkennung (von Bremus - 31.05.2006 22:26)