Anfänger schrieb:
> bekommen. Aber aller Anfang ist schwer.Ja genau so soll das Grundgerüst
> aussehen.
Na, dann programmier das doch!
Du brauchst das struct DATA Objekt. Hier ist es
1 | G_Data
|
2 | +--------------------+
|
3 | | DATA |
|
4 | +====================+
|
5 | | pWriteData:
|
6 | | pError:
|
7 | +--------------------+
|
weiters brauchst du laut Zeichnung ein union ERROR_REG Objekt. Hier ist
es
1 | union ERROR_REG G_Errors;
|
1 | G_Data
|
2 | +--------------------+
|
3 | | DATA |
|
4 | +====================+
|
5 | | pWriteData:
|
6 | | pError:
|
7 | +--------------------+
|
8 |
|
9 |
|
10 | G_Errors
|
11 | +------------------+
|
12 | | ERROR_REG |
|
13 | +==================+
|
14 | | all: |
|
15 | | bit: |
|
16 | | +-----------+ |
|
17 | | | ERROR_BITS| |
|
18 | | +===========+ |
|
19 | | | Error1: | |
|
20 | | | Error2: | |
|
21 | | | Error3: | |
|
22 | | +-----------+ |
|
23 | +------------------+
|
damit stehen erst mal die Rechtecke (das RS232 Objekt ignoriere ich mal)
und dann muss man noch dafür sorgen, dass der Pointer in G_Data auf das
G_Errors Objekt zeigt. Das kann man in der Initialisierung von G_Data
machen, mann kann es aber auch ganz am Programmanfang machen:
1 | int main
|
2 | {
|
3 | G_Data.pError = &G_Errors;
|
und schon hat man den Pfeil vom G_Data Objekt zum G_Errors Objekt
eingerichtet.
1 | G_Data
|
2 | +--------------------+
|
3 | | DATA |
|
4 | +====================+
|
5 | | pWriteData:
|
6 | | pError: o--------+
|
7 | +--------------------+ |
|
8 | |
|
9 | |
|
10 | | G_Errors
|
11 | | +------------------+
|
12 | | | ERROR_REG |
|
13 | | +==================+
|
14 | +->| all: |
|
15 | | bit: |
|
16 | | +-----------+ |
|
17 | | | ERROR_BITS| |
|
18 | | +===========+ |
|
19 | | | Error1: | |
|
20 | | | Error2: | |
|
21 | | | Error3: | |
|
22 | | +-----------+ |
|
23 | +------------------+
|
1 | struct DATA G_Data;
|
2 | union ERROR_REG G_Errors;
|
3 |
|
4 | int main
|
5 | {
|
6 | G_Data.pError = &G_Errors;
|
7 |
|
8 | // jetzt kannst du über den Pointer in G_Data auf das dadurch verlinkte
|
9 | // Error Objekt zugreifen
|
10 |
|
11 | G_Data.pError->bits.Error1 = 1;
|
12 | }
|
Wenn du dir nicht sicher bist, dann zeichne deine Datenstruktur auf
einem Stück Papier mit, so wie ich das hier gemacht habe! Dann kannst du
nichts vergessen. Und Doku ist es ausserdem gleichzeitig auch noch.