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: Prioritäten setzen? Kategorie: Programmierung Basic (von Andreas - 4.03.2004 18:13)
 Als Antwort auf Re: Prioritäten setzen? von Andreas Büttner - 4.03.2004 14:41
Wie gesagt, vielleicht komm ich noch auf dich zurück!
Hab dir grad mein Prog per e-mail geschickt. Vielleicht kannst du mir helfen!!

Gruß Andreas



> Hallo Paul,
>
> So in etwa hab ich es mir gedacht. Habs aber leider net ganz verstanden!  Probier jetzt erst mal
> den Vorschlag von Manfred aus. Leuchtet mir irgendwie eher ein.
>
> Danke dir aber für deine Hilfe!! Vielleicht komm ich noch auf dich zurück!
>
> Gruß Andreas
>
> > Hallo Andreas,
> >
> > wie wäre es mit einer Variable, in der Du Dir merkst, ob eine Prioritäts-Situation eingetreten ist?
> >
> > Das könnte ungefähr so aussehen... (quick and dirty, nur um zu zeigen wie es gehen könnte)
> >
> > define prio byte
> > prio = 0
> > ....
> > #loop
> > ' mit jedem Tastendruck wird Bit 1 von prio ein-/ausgeschaltet
> > if port[1] = on then prio = prio xor 1                
> >
> > ' wenn die Temperatur einen kritischen Wert überschreitet Bit 2 von prio einschalten (sonst Bit 2 aus)
> > if temperatur > XX then prio = prio or 2 else prio = prio and 253
> >
> > ' wenn ein Zeitfenster erreicht wird Bit 3 von prio einschalten (sonst Bit 3 aus)
> > if (hour >= 12 and hour <= 15) then prio = prio or 4 else prio = prio and 251
> >
> > ' jetzt die priorisierte Abfrage
> > if (prio and 1) = 0 then goto keine_taste
> > ' hier der Programmteil für das was bei einem Tastendruck passieren soll
> > ...
> > goto loop
> >
> > #keine_taste
> > if (prio and 2) = 0 then keine_temp
> > ' hier der Programmteil für das was bei erreichen der kritischen Temperatur passieren soll
> > ...
> > goto loop
> >
> > #keine_temp
> > if (prio and 4) = 0 then goto loop
> > ' hier der Programmteil für das was bei erreichen eines Zeitfensters passieren soll
> > ...
> > goto loop

> >
> >
> > Ist der Programmteil jeweils identisch, kannst Du natürlich mit einem Unterprogramm arbeiten
> > und es per gosub jeweils aufrufen. Ich denke die Vorgehensweise ist klar, so daß Du die
> > Priorisierung der Lüfter-Steuerung selber machen kannst.
> >
> > Grüße, Paul
> >
> > > Hallo, hallo!
> > >
> > > Ich bin Anfänger und arbeite mich so langsam in die Programierung in Basic ein. Klappt eigentlich
> > > auch ganz gut! Jetzt steh ich vor einem Problem und komme einfach nicht weiter!
> > >
> > > Mein kleines Programm soll folgendes können:
> > >
> > > 1. Lampen nach Zeit steuern (Zeitschaltuhr)
> > > 2. bei zu hohen Temperaturen eine Lampe auschalten und bei noch höheren Temperaturen einen
> > > Lüfter anschalten
> > > 3. alles manuell über die Tasten der CStation an- bzw. ausschalten
> > >
> > > Jede Funktion einzeln für sich funktioniert auch Bestens. Wenn ich sie jedoch zusammenfüge, dann
> > > kann ich die Tasten nicht mehr Bedienen, da er ja sofort die Lampen wieder einschaltet, wegen
> > > der Zeitschaltuhr. Genauso mit der Temperatur! Kann man irgendwie Prioritäten setzen,
> > > so dass die Tasten die höchste Priorität haben, dann die Temperatur und danach die Zeit?
> > > Ich müßte irgendwie speichern, dass ich die Taste gedrückt habe, damit er die Zeit und Temp. nicht
> > > abfragt! Aber WIE???
> > >
> > > Ich bin für jede Hilfe dankbar!!
> > > Gruß Andreas

 Antwort schreiben

Bisherige Antworten: