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 ! > In meiner Heizungssteuerung habe ich mehrere benutzerdefinierte Variablen definiert. > > Einige dieser Varibalen setze ich um in ein Byte-Feld und diese dann über die Schnittstelle > an das Auswerteprogramm auf dem PC zu senden. > > Frage: kann ich auf die Variable im Hauptspeicher direkt zugreifen und die benutzerdef. Variable > direkt mit dem copy-Befehle in ein Bytefeld übertragen? > > Hier ein Beispiel wie es momentan programmiert ist: > > <code> > //Konstanten für Einstell_Vektor > const EV_lang = (2*4) + (11*2) + 42; //Anzahl der Bytes: 72 > const EV_V1 = 1; > const EV_V2 = 0; > type Einstell_Vektor > { > byte Version_gr; > byte Version_kl; > long Prog_Datum; > long Prog_Zeit; > int MischerKenn_x2; > int MischerKenn_x1; > int MischerKenn_x0; > int HeizKenn_x2; > int HeizKenn_x1; > int HeizKenn_x0; > byte Mischerfaktor; > byte Mischer_max_Laufzeit; > byte Mischer_min_Zeit; > byte Mischer_Wartezeit; > byte Mischer_Toleranz; > byte Aufheiztag; > int Konfiguration; > int Zustand; > int Aufheiztemp; > int Zeitversatz_Kamin_Brenner; > byte Durch_Std_von; > byte Durch_Std_bis; > int Durch_Temp; > byte Zu_R[16]; > byte Zu_T[16]; > } > > //Fuktion zum Umsetzen der Variable in Bytefeld > // zum Übertragen an PC > function EinstV_to_Umsetz() > { > byte i; > //Schreibt den Einstell-Vektor in Umsetz-Bytearray > um[0] = Einst.Version_gr; > um[1] = Einst.Version_kl; > mem.putlong(um, 2, Einst.Prog_Datum); > mem.putlong(um, 6, Einst.Prog_Zeit); > mem.putint(um, 10, Einst.MischerKenn_x2); > mem.putint(um, 12, Einst.MischerKenn_x1); > mem.putint(um, 14, Einst.MischerKenn_x0); > mem.putint(um, 16, Einst.HeizKenn_x2); > mem.putint(um, 18, Einst.HeizKenn_x1); > mem.putint(um, 20, Einst.HeizKenn_x0); > um[22] = Einst.Mischerfaktor; > um[23] = Einst.Mischer_max_Laufzeit; > um[24] = Einst.Mischer_min_Zeit; > um[25] = Einst.Mischer_Wartezeit; > um[26] = Einst.Mischer_Toleranz; > um[27] = Einst.Aufheiztag; > mem.putint(um, 28, Einst.Konfiguration); > mem.putint(um, 30, Einst.Zustand); > mem.putint(um, 32, Einst.Aufheiztemp); > mem.putint(um, 34, Einst.Zeitversatz_Kamin_Brenner); > um[36] = Einst.Durch_Std_von; > um[37] = Einst.Durch_Std_bis; > mem.putint(um, 38, Einst.Durch_Temp); > for i = 0...15 > um[40 + i] = Einst.Zu_R[i]; > for i = 0...15 > um[56 + i] = Einst.Zu_T[i]; > } > > //Funktion zum Umsetzen der Daten vom PC in benutzetrdef. Variable > function Umsetz_to_EinstV() > { > byte i; > //Schreibt das Bytefeld in Einstell-Vektor um > Einst.Version_gr = um[0]; > Einst.Version_kl = um[1]; > Einst.Prog_Datum = mem.getlong(um, 2); > Einst.Prog_Zeit = mem.getlong(um, 6); > Einst.MischerKenn_x2 = mem.getint(um, 10); > Einst.MischerKenn_x1 = mem.getint(um, 12); > Einst.MischerKenn_x0 = mem.getint(um, 14); > Einst.HeizKenn_x2 = mem.getint(um, 16); > Einst.HeizKenn_x1 = mem.getint(um, 18); > Einst.HeizKenn_x0 = mem.getint(um, 20); > Einst.Mischerfaktor = um[22]; > Einst.Mischer_max_Laufzeit = um[23]; > Einst.Mischer_min_Zeit = um[24]; > Einst.Mischer_Wartezeit = um[25]; > Einst.Mischer_Toleranz = um[26]; > Einst.Aufheiztag = um[27]; > Einst.Konfiguration = mem.getint(um, 28); > Einst.Zustand = mem.getint(um, 30); > Einst.Aufheiztemp = mem.getint(um, 32); > Einst.Zeitversatz_Kamin_Brenner = mem.getint(um, 34); > Einst.Durch_Std_von = um[36]; > Einst.Durch_Std_bis = um[37]; > Einst.Durch_Temp = mem.getint(um, 38); > for i = 0...15 > Einst.Zu_R[i] = um[40 + i]; > for i = 0...15 > Einst.Zu_T[i] = um[56 + i]; > } > > </code>