Hallo rolf,
der Compiler verschwendet ja leider immer ein komplettes Byte für einen BOOL.
Wäre sowas als Type/Record möglich?
TPVSIO_OUTPUT2 = record
Buffer1 : byte;
QK00[@Buffer1, 0] : bit;
QK01[@Buffer1, 1] : bit;
QK02[@Buffer1, 2] : bit;
QK03[@Buffer1, 3] : bit;
QK04[@Buffer1, 4] : bit;
QK05[@Buffer1, 5] : bit;
QK06[@Buffer1, 6] : bit;
QK07[@Buffer1, 7] : bit;
Buffer2 : byte;
QK10[@Buffer2, 0] : bit;
QK11[@Buffer2, 1] : bit;
QK12[@Buffer2, 2] : bit;
QK13[@Buffer2, 3] : bit;
QK14[@Buffer2, 4] : bit;
QK15[@Buffer2, 5] : bit;
QK16[@Buffer2, 6] : bit;
QK17[@Buffer2, 7] : bit;
end;
Bei VARs kann ich es ja so machen, aber bei Types und Records
BITs lassen sich ja an vielen Stellen wie BOOLs ohne Probleme abfragen und setzen, Ich denke man könnte hier schon einiges an Speicher sparen. Oder gibt es da einen anderen Lösungsansatz?
Auch dieser Weg geht mit dem Compiler leider nicht:
Gruß
Thorsten
der Compiler verschwendet ja leider immer ein komplettes Byte für einen BOOL.
Wäre sowas als Type/Record möglich?
Code
TPVSIO_OUTPUT2 = record
Buffer1 : byte;
QK00[@Buffer1, 0] : bit;
QK01[@Buffer1, 1] : bit;
QK02[@Buffer1, 2] : bit;
QK03[@Buffer1, 3] : bit;
QK04[@Buffer1, 4] : bit;
QK05[@Buffer1, 5] : bit;
QK06[@Buffer1, 6] : bit;
QK07[@Buffer1, 7] : bit;
Buffer2 : byte;
QK10[@Buffer2, 0] : bit;
QK11[@Buffer2, 1] : bit;
QK12[@Buffer2, 2] : bit;
QK13[@Buffer2, 3] : bit;
QK14[@Buffer2, 4] : bit;
QK15[@Buffer2, 5] : bit;
QK16[@Buffer2, 6] : bit;
QK17[@Buffer2, 7] : bit;
end;
Bei VARs kann ich es ja so machen, aber bei Types und Records
BITs lassen sich ja an vielen Stellen wie BOOLs ohne Probleme abfragen und setzen, Ich denke man könnte hier schon einiges an Speicher sparen. Oder gibt es da einen anderen Lösungsansatz?
Auch dieser Weg geht mit dem Compiler leider nicht:
Code
TYPE
TPVSIO_OUTPUT2 = record
Buffer1 : byte;
Buffer2 : byte;
end;
VAR
OUT : TPVSIO_OUTPUT2;
QK00[@OUT.Buffer1, 0] : bit;
QK01[@OUT.Buffer1, 1] : bit;
QK02[@OUT.Buffer1, 2] : bit;
QK03[@OUT.Buffer1, 3] : bit;
...
TPVSIO_OUTPUT2 = record
Buffer1 : byte;
Buffer2 : byte;
end;
VAR
OUT : TPVSIO_OUTPUT2;
QK00[@OUT.Buffer1, 0] : bit;
QK01[@OUT.Buffer1, 1] : bit;
QK02[@OUT.Buffer1, 2] : bit;
QK03[@OUT.Buffer1, 3] : bit;
...
Gruß
Thorsten