Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Ich gehe erst die kommenden Tage das programmien des Logging-Teils an. > Inzwischen bin ich ein wenig von meinem hohen Roß abgestiegen. > Bevor ich überhaupt das loggen ins RAM device implementiere, werde ich (diese Woche) das raus- > blasen der Werte nach einer fixen Log-Tabelle implementieren. > Da muß halt dann ständig ein PC dranhängen, aber PC seitig ist logging SW vorhanden, da brauch > ich nix schreiben. > Als nächster Schritt wird der Speicher implementiert, damit nicht ständig ein PC laufen muß. > Und danach (irgendwann) ist geplant, daß die Log-Tabelle via PC geändert werden kann. Hier wird es > vermutlich immer möglich sein, den Speicher vorher zu löschen, so daß das hantieren mit > unterschiedlichen Log-Tabellen im RAM Device vermutlich unnötig sein wird. > Am Menü der Station wird man vermutlich nie die Log-Tabelle ändern können, weil ich das vermutlich > vom PC aus machen werde, bevor ich in den Heizraum latsche (die Station wird per seriell zu LAN > Konverter ans Netz kommen). > Was ich eigentlich anmerken wollte > > <code>var.temp[konst.puffer_oben]=x;</code> > zu diesem Konstrukt bin ich auch gekommen. Zumindest bei den Parametern die ich implementiert > habe. > Schaut dann zB. so aus: > <code>para.meter[const.COL_BOIL_DIFF]</code> > Das große Problem ist, daß der Code recht unleserlich wird. > Schon eine Abfrage <code>x > (a*b)+c</code> verteilt sich über 2 Zeilen, wenn alle Variablen solche > Konstrukte sind. Nachdem es leider ja kein define gibt... > > > Bei Ausgängen benötigst Du nur eine Funktion, die Dir anhand eines Index > > den entsprechnden Port abfragt. > > Als Bsp. aus meinem seit nunmehr fast 4 Jahre alten Provisorium: > > <code>function get(int port) returns int > > { > > if port>=8 return states[port]!=0; > > if port>=5 and port<=7 return not rbports.get(port); > > if port>=0 and port<=2 return rbports.get(port); > > if port==-1 return IWP[0]; > > if port==-2 return IWP[1]; > > }</code> > > Ich weiß nicht ganz, was Du mir damit sagen willst. Ich denke es trifft einfach nicht auf mein > Beispiel zu. Bis jetzt habe ich zumindest keine Digital Eingänge. Die Analogwerte werden zyklisch > berechnet und liegen sowieso in einem Array. > > > für die LCD-Texte kannst Du einfach ein String-Konstanten-Array mit übereinstimmenden > > Indizies anlegen. > Das habe ich nicht verstanden. > > > Prinzipiell gibt es in C2 keine Bit-Variablen und auch keine VMCodes > > für den gezielten Bitzugriff. > > Es bleibt hier nur das Maskieren von Bits. (siehe z.B. im Modul srrel.c2 oder rbports.c2) > > Man könnte sich hier natürlich auch ASM-Routinen schreiben, aber das wäre für > > ein paar Temperaturen ein unnötiger Aufwand. > > Den bitadressierbaren bereich kann man aus C2 direkt nicht nutzen. Auch wird ein Teil > > bereits vom OS bzw. von Systemtreibern benötigt. > > > > Auch wenn es natürlich Speicherverschwendungen ist, kannst Du ohne > > weiteres ein Bytearray benutzen. Die CC2 hat 64kB RAM. Hier darf > > man schon vereinzelt etwas verschwenderisch werden. ;-) > > Und selbst bei 100 Variablen, die Du loggen willst, wären es nur 100 Byte von 64kB. > > Das sind gerade etwas über 0,15% des RAMs. > > Aber soviele unterschiedliche Werte werden es sicher nichteinmal sein. ;-) > Ich finde das eine Schwäche. Es hätte sich angeboten ein boolean zu definieren und die Dinger in > Bitfields abzulegen. Da brauchen wir gar nicht über Speicherplatz diskutieren, wenn man mal die Zeit > eines HW-Bit-Befehls mit einem masking in C2 vergleicht ;-). > > Gruß > Leo