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: interval Kategorie: Programmierung Basic (von Achim - 12.01.2007 18:47)
 Als Antwort auf Re: interval von chuckie - 12.01.2007 17:59
Achim nutzt:  CC1-Station V1.1
> > > ich hab einen lichtsensor gebaut. jetzt will ich auf einem display anzeigen wann das licht ein geschaltet werden sollte.
> > >
> > > es sollte z.b. "Licht ?" stehn und soll 2 sek da stehen und zwei sekunden verschwinden  wie mache ich das also ich habs so gemacht nur mit dem zwei sek anbleiben klappt nur wenn immer noch zumwenig licht da ist bleibt es an wo es aber blinken sollte.
> >
> > Das würde sich wesentlich leichter lesen, wenn Du etwas weniger sparsam mit Interpunktion und Shift-Taste umgingest.
> >
> > > #main
> > >
> > >
> > > if licht> 100 then puffer = 2
> > > if second = sekunde then goto main
> >
> > Das bedeutet, solange Du auf die nächste Sekunde wartest, um dann puffer um eins zu vermindern, wird puffer immer wieder zurück auf 2 gesetzt, wenn der Lichtwert entsprechend hoch ist. Also kann puffer dann nie 0 werden und "Licht ?" bleibt stehen, bis der Wert von licht mal <= 100 wird.
> >
> Oh Du hast recht, die Shift Taste sollte ich doch mal öfters drücken.
>
> Uhmm kannst du mir da mal einen Tipp gegeben wie ich das am besten mache?

Ja, gerne. Immer, wenn Du ein Wort mit einen Großbuchstaben beginnt, drückst Du zunächst die Shift-Taste (das ist eine der beiden mit dem Pfeil nach oben), dann den Buchstaben. Dann lässt Du den Buchstaben los und dann die Shift-Taste.

<SCNR>

Zu Deinem Programmproblem:
Offensichtlich willst Du ja weder, währned Du auf das Verstreichen einer Sekunde wartest, noch, nachdem Du puffer um eins vermindert hast, dass puffer erneut auf zwei gesetzt wird. Deine Schleifengestaltung ist also suboptimal.

Ein weiterer Fehler in Deinem Programm ist, dass Du die Zeit, in der nichts im Display steht, nicht mit puffer zählst. Im Moment würde demnach bei leichtfertiger Korrektur des Programms "Licht ?" zwei Sekunden lang erscheinen, und dann aber nur eine Sekunde lang "      " und nicht zwei Sekunden lang, wie in Deiner Soll-Beschreibung.

Ich könnte Dir natürlich eine Lösung hinschreiben, aber ich glaube, Du bist nahe genug dran, um auch selber drauf zu kommen, und das hat einen viel größeren Lerneffekt.

Wenn's gar nicht klappt, melde Dich noch mal, aber ein Stündchen oder zwei würde ich an Deiner Stelle noch selber versuchen.

Bye
 Achim

 Antwort schreiben

Bisherige Antworten:

Re: interval (von chuckie - 12.01.2007 19:16)