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: zeitverzögerung Kategorie: Programmierung Basic (von renate - 16.09.2005 9:08)
 Als Antwort auf Re: zeitverzögerung von Achim - 16.09.2005 9:01

> > > > > > habe eine frage : ich habe eine steuerung programmiert, um eine pumpe zu steuern (an/aus), nun
> > > > > > möchte ich aber, dass diese pumpe nach unterschreitung einer bestimmten temperatur noch eine minute
> > > > > > weiterläuft und nicht sofort ausgeht ! kann mir jemand helfen ??
> > > > >
> > >
> > > Dann musst Du an geeigneten Stellen abprüfen, ob die Minute um ist.
> > >
> > > if temp >= schwellwert then goto warm
> > >   pumpen_timer_laeuft = on
> > >   pumpen_timer = timer
> > > #warm
> > >
>  
> danke achim es hat mich schon ein stückchen weiter gebracht aber trotzdem bekomm ich es nicht zum laufen ! ich zeig dir einfach mal mein programm und hoffe mal du kannst den fehler finden :)
>  
> > define temp1 ad[1]
> > define temp2 ad[2]
> > define pumpe port[1]
> > define pumpen_timer_laeuft byte
>
> pumpen_timer muss ein word sein, wie Du weiter unten bereits richtig erkannt hast.
>
> > define pumpen_timer byte
> > define y byte
> >
> > #loop
> > y = abs(timer - pumpen_timer)
> >
> > print "timer =",pumpen_timer
> > print "y=" , y
> >
> > if temp1 < temp2 then goto timer1 else goto pumpe_an
> >
> >
> > #timer1
> >    pumpen_timer_laeuft = ON
> >    pumpen_timer = timer
> > if pumpen_timer_laeuft = ON AND abs(timer - pumpen_timer) > 60 * 50 then gosub pumpe_aus else goto weiter
>
> Du setzt den Pumpen-Timer ja jedesmal neu, solange temp1 < temp2 ist. Kein Wunder, dass die Pumpe ewig läuft (unabhängig von dem Fehler, den Wert in einem byte zu speichern).
>
> Da Du jetzt entgegen Deiner Aussage doch eine Schleife hast, muss in timer1 noch eine if-Abfrage rein, die das Neu-Setzen des Pumpen-Timers verhindert, wenn der Timer bereits läuft. (Lasse ich Dir jetzt mal zur Übung, das zu codieren.) ;-)
>
> > mir ist aufgefallen das der timer bzw die abs funktion ja nie größer als 255 wird und somit auch nie größer als 60*50 = 3000 werden kann ! und somit bleibt die pumpe immer an :(
>
> Das ist aber nur einer der Gründe. S.o.
>
> Bye
>  Achim

ach im ! :)

das is jetzt aber gemein von dir ! und das so früh am morgen :)
aber ich versuch es mal du schelm :)

mfg

 Antwort schreiben

Bisherige Antworten:

Re: zeitverzögerung (von renate - 16.09.2005 9:28)
    Re: zeitverzögerung (von Achim - 16.09.2005 10:39)
        Re: zeitverzögerung (von renate - 19.09.2005 9:11)
            Re: zeitverzögerung (von Achim - 19.09.2005 12:02)