INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> sowas hatten wir hier schon mal, allerdings finde ich den part mit der > sekundengenauen steuerung nicht mehr. > deshalb hier nochmal das komplette programm, das > ich nachher noch kurz erläutere: > > 'Zeitschaltuhr - Glockensteuerung > > define i byte 'Schleifenzaehler > define j byte 'Auslesepuffer > > define port_1 port[7] > define port_2 port[8] > > > ' Uhrzeit auf kurz vor 7:00:00 stellen (fuer Testlauf) > hour = 7 : minute = 01 :second = 55 > > > #main 'Hauptschleife, Hauptprogramm > > gosub SWITCHES > > goto main > > > #SWITCHES 'Subroutine: Schaltzeittabellen auslesen, Ports setzen > for i = 0 to 252 step 3 'minutengenaues Schalten, Port 1, maximal 84 > looktab PORT_1,i,j > if j = 99 then goto P1Loopend > if j <> hour then next > looktab PORT_1,i + 1,j > if j <> minute then next > looktab PORT_1,i + 2,j > port_1 = j > next > #P1Loopend > > for i = 0 to 252 step 4 'sekundengenaues Schalten, Port 2, maximal 62 > looktab PORT_2,i,j > if j = 99 then goto P2Loopend > if j <> hour then next > looktab PORT_2,i + 2,j > if j <> second then next > looktab PORT_2,i + 1,j > if j <> minute then next > looktab PORT_2,i + 3,j > port_2 = j > next > #P2Loopend > ' i = second 'Diese zwei Befehle den Programmablauf synchen. > ' wait i <> second 'Erst mit Anbruch einer neuen Sekunde gibt die > 'die Routine dann ans Hauptprogramm zurück > return > > 'Schaltzeittabellen mit Stunde, Minute, Portstatus > 'maximal 84 Zeilen mit Zeiten, > 'die letzte Zeile MUSS eine 99 enthalten! > table PORT_1 > ' hh : mm - H/L > 07 00 1 > 07 01 0 > 07 02 1 > 07 03 0 > 07 04 1 > 07 05 0 > 07 06 1 > 07 07 0 > 07 08 1 > 07 09 0 > 07 10 1 > 07 11 0 > 99 'Tabellenende, stehen lassen! > tabend > 'Schaltzeittabellen mit Stunde, Minute, Sekunde, Portstatus > 'maximal 62 Zeilen mit Zeiten, > 'die letzte Zeile MUSS eine 99 enthalten! > table PORT_2 > ' hh : mm : ss - H/L > 07 00 00 1 > 07 00 01 0 > 07 00 02 1 > 07 00 03 0 > 07 00 04 1 > 07 00 05 0 > 07 00 06 1 > 07 00 07 0 > 07 00 08 1 > 07 00 09 0 > 07 00 10 1 > 07 00 11 0 > 99 'Tabellenende, stehen lassen! > tabend > > > zu beachten ist hierbei, dass das unterprogramm einfach aus der hauptschleife > heraus angesprungen werden kann, somit also jederzeit aufrufbar ist und die > verwendeten variablen nur bedingt im hauptprogramm zur verfügung stehen, aber > durchaus genutzt werden können. > zweitens ist offensichtlich, dass man auf den ersten teil, der lediglich > minutengenau schaltet, selbstverständlich verzichten kann, wenn man nur sekundengenau > arbeiten kann und muss. man kann einfach die erste schleife und die dazugehörige tabelle > einfach entfernen und muss die andere nur anpassen (digiport, labels und so weiter.) > > in die mainloop gehört natürlich dein sonstiges hauptprogramm und der punkt > des uhrzeitstellens diente nur testzwecken, um zu sehen, ob das ding auch > wirklich funzt wie ein uhrwerk. > > ich hoffe, das ist was für dich. > > Kay Hallo, ich danke euch erstmal für die schnellen Antworten. Jo Manfred ist ne Relaisplatine. Du hast deine HP aktualisiert bzw. erweitert...denn ich lese dich hier zieml. oft und bin auch sehr oft auf deiner HP um zu lernen...aber das sekundengenaue schalten, hast du erweitert. Naja 6005 klang halt so schön *g* ne klar...muss 605 sein...danke Als erstes probier ich die Tips von Manfred, dann mal den Tip mit > weglassen. Ja und dann probier ich das programm. Des muss ich mir aber in Ruhe zu gemüte führen. Dann werd ich sehen welches am Ressourcenschonendsten ist. Aber im Moment kann ich nicht testen...meine DCF will nicht synchronisieren und ohne die geht nun mal nix. Ich vermute mal, meine Puppe ist auf die platine getrampelt. Ich hab im moment den ganzen Krempel vorm Terrarium stehen. Ich muss sie nachher gleich mal dazu interviewen....weiber!!! Also denn Danke nochmal für die Tips bzw. korrekturen...ich melde mich MfG Andi |
Antwort schreiben |