
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > Hi, > > ich bin zwar erst seit ein paar Wochen aktiv im CControl-Geschäft, aber ich machte es bei meiner > > Rolladensteuerung testweise einmal so gemacht: > > define LED1 port[13] > > > > #loop > > > > ... > > .. > > LED1=(second mod 2) > > ... > > .. > > goto loop > > > > > > CController ManfredW hat natürlich recht, es darf nur EINE Schleife in der Steuerung geben. Nur zum > > Entprellen von Tastern benutzte ich allerdings ein kurzes PAUSE 5 und WAIT > > Tastendruck eines Digiports festegestellt habe, merke ich mir die Sekunden auf einer BYTE-Variable > > mittels SEKUNDEN_MERKER=second mod 60 . Auf SEKUNDEN_MERKER addiere ich z.B. die > > Konstante WARTE_ZEIT (define WARTE_ZEIT 8) hinzu. Wenn > > second=SEKUNDEN_MERKER+WARTEZEIT ist, dann kann ich darauf reagieren.Wenn man kürze > > Zeiten als Sekunden abfragen will, dann nimmt man den Timer und speicher ihn auf eine WORD-Variable > > und verfährt genauso. > > Ich glaube bei ManfredW auch gesehen zu haben, dass er gewisse BITS der Timer Variable abfragt. > > Da gibt es ein BIT welches z.B. ca alle 1.3 Sekunden wechselt. > > > > Wenn ich mit meinen Äußerungen völlig schief liege, so möge man mir dieses gerne mitteilen. > > In Kürze werde ich wie schon einmal angedroht meine Rolladensteuerung hier vorstellen. > > > > Gruß > > ManfredST (DerMoordeicher) > > > > Hallo, > > muss zum Entprellen des Tasters wirklich "pause" eingefügt werden? > Die Zeit für einen Programmdurchlauf (Zykluszeit) ist doch bei einer Rollladensteuerung sicher so lang, > dass das Prellen bei der nächsten Abfrage schon beendet ist. > > Eine weitere Frage zu Deiner Wartezeit: > SEKUNDEN_MERKER = second mod 60 > Wozu dient in diesem Fall mod 60? > Verbirgt sich dahinter ein Trick, indem Du den Bereich größer 59 Sekunden nutzt? > > MfG ManfredW Ich hätte natürlich vorher in meinen eigenen Programmcode sehen sollen, bevor ich quick anbd dirty auf etwas antworte. Genau muss es so lauten: SEKUNDEN_MERKER=(second+WARTEZEIT) mod 60 In der Schleife frage ich dann ab, if second=SEKUNDEN_MERKER then ..... Jetzt ergibt das MOD 60 auch einen Sinn, denn second+Wartezeit kann größer 60 werden, und damit nie =SECOND werden (0-59). Durch MOD 60 erhält man ja den Rest bei ganzzahliger Division durch 60, und der liegt auch zwischen 0 und 59. Mit den Tastern und der Pause mags du recht haben. Ich habe diese Abfrage von Tastern stumpf aus Handbüchern/Beispielen übernommen. Bei kleinen Programmen hatte ich ohne dieseTechnik aber wirklich schon Probleme. Ich denke mir, somit bin ich immer auf der sicheren Seite. Gruß ManfredST |
| Antwort schreiben |