Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB