INFO - FAQ - CC2-Forum - CCPro-Forum |
Habs mal geschrieben und getestet - Im Simulator funktioniert's. Intuitiv sieht das zwar nicht aus dank Rotstift zwecks Speichersparwahns. Dafür kommt das Programm in der Form mit 209 Bytes aus und benötigt nur 2 Bytevarablen, die woanders auch benutzt werden könnten. Durch ergänzen weiterer Subroutinen und der Main-Loop kann dein Kontroller noch vieles mehr tun. 'Zeitschaltuhr - Test define rows_porttab1 4 'in diese konstanten ist die anzahl der zeilen define rows_porttab2 2 'der jeweiligen tabellen abzüglich 1 einzutragen! define i byte 'Schleifenzähler define j byte 'Auslesepuffer define out1 port[1] define out2 port[2] #main 'Hautpschleife if second = 0 then gosub switches goto main #switches 'Subroutine: Schaltzeittabellen auslesen, Ports setzen for i = 0 to 3 * rows_porttab1 step 3 'Zeilenanfangsandresse Tab 1 generieren looktab porttab1,i + 1,j if j <> minute then goto tab1_loopend 'falsche Minute? überspringe aktion looktab porttab1,i,j if j <> hour then goto tab1_loopend 'falsche Stunde? überspringe aktion looktab porttab1,i + 2,j out1 = j #tab1_loopend next for i = 1 to 3 * rows_porttab2 step 3 'Zelenanfangsadresse Tab 2 generieren looktab porttab2,i + 1,j if j <> minute then goto tab2_loopend 'falsche Minute? überspringe aktion looktab porttab2,i,j if j <> hour then goto tab2_loopend 'falsche Stunde? überspringe aktion looktab porttab2,i + 2,j out2 = j #tab2_loopend next return table porttab1 'Schaltzeittabellen mit Stunde, Minute, Portstatus 07 08 1 'nach Zufügen von Zeilen ganz oben die Konstanten ändern!!! 07 09 0 07 10 1 07 11 0 tabend table porttab2 07 12 1 07 13 0 tabend |
Antwort schreiben |