
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Ich halte es nach wie vor für notwendig, ein einzeiliges IF zu unterstützen. ohne weiteren kommentar: dietmar hat recht > > Auch Deine Abneigung gegen GOTOs verstehe ich nicht. .... richtig! das folgende progrämmchen zur zeitschaltung von kirchturmglocken hat man hier schon mal gesehen. ohne einzeiliges IF und ohne GOTO würde dieses bißchen Schaltuhr in meinen augen 'ne programmiertechnische katastrophe. vor allem für den neueinsteiger, der eindeutig erstmal was intuitives brauchte. 'Zeitschaltuhr - Glockensteuerung '----- WICHTIG!!! ----- define rows_belltimes 3 'in diese Konstanten ist die Anzahl der Zeilen define rows_tappettimes 7 'der jeweiligen Tabellen ABZÜGLICH 1 einzutragen! define i byte 'Schleifenzähler define j byte 'Auslesepuffer define port_belldrive port[1] define port_tappet port[2] #main 'Hauptschleife gosub switches goto main #switches 'Subroutine: Schaltzeittabellen auslesen, Ports setzen for i = 0 to 4 * rows_belltimes step 4 'jeweils Zeilenafang der Tabelle addressieren looktab belltimes,i + 2,j 'Sekundensoll aus Tabelle holen if j <> second then goto bt_loopend 'falsche Sekunde? überspringen! sonst weiter looktab belltimes,i + 1,j 'Minutensoll aus Tabelle holen if j <> minute then goto bt_loopend 'falsche Minute? überspringen! sonst weiter looktab belltimes,i,j 'Stundensoll aus Tabelle holen if j <> hour then goto bt_loopend 'falsche Stunde? überspringen! sonst weiter looktab belltimes,i + 3,j 'Portstatus holen port_belldrive = j 'und setzen #bt_loopend next 'das wars, nächste Schleife for i = 0 to 4 * rows_tappettimes step 4 looktab tappettimes,i + 2,j if j <> second then goto tp_loopend looktab tappettimes,i + 1,j if j <> minute then goto tp_loopend looktab tappettimes,i,j if j <> hour then goto tp_loopend looktab tappettimes,i + 3,j port_tappet = j #tp_loopend next 'das wars im ganzen :-) return 'Schaltzeittabellen mit Stunde, Minute, Portstatus table belltimes 06 58 00 1 'Glockenantrieb morgens 07 02 30 0 17 58 00 1 'Glockenantrieb abends 18 02 30 0 tabend table tappettimes 06 59 50 1 'Knüppel morgens Start 07 01 00 0 'Läut-Pause nach einer Minute 07 01 30 1 'weiterläuten 07 02 30 0 'Ruhe morgens 17 59 50 1 'Knüppel abends Start 18 01 00 0 'Läut-Pause nach einer Minute 18 01 30 1 'weiterläuten 18 02 30 0 'Ruhe abends tabend |
| Antwort schreiben |