Moin Forum,
ich habe malwieder ein Problem bzw. eine Idee, aber wie man diese
umsetzt ist noch fraglich für mich.
Schon mal vorab, ich arbeite weiterhin mit dem TriCore TC1797, Tasking
VX toolset 3.1, DAvE und einem Lauterbach Debugger unter Trace32.
Folgende Anforderung:
Ich habe eine Hauptfunktion, welche ich aufrufen möchte, wenn ich Daten
vom Bus erfassen möchte und diese dann in einer Rückgabevariable wieder
auszugeben.
In der Hauptfunktion rufe ich nun die entsprechenden Unterfunktionen
auf, welche mir jeweils 2 Daten-Bytes wieder geben.
Diese Daten-Bytes möchte ich jetzt gerne irgendwie nach außen, also in
die main bzw. in die globale Variable bekommen.
Hier mal als Pseudo-C-Code dargestellt:
1 | /* globale Variable vom Typ X, welche die gelesenen Datenbytes speichert und falls wenn neue Daten gelesenen werden, diese dann drunter/drüber anhängt
|
2 | */
|
3 | Typ_X Global_Variable;
|
4 |
|
5 | void main(void)
|
6 | {
|
7 | // Aufruf der Hauptfunktion und je nachdem die entsprechende Zuweisung
|
8 | Global_Variable = Hauptfunktion();
|
9 |
|
10 | return 0;
|
11 | }
|
12 |
|
13 | Rueckgabetyp_X Hauptfunktion()
|
14 | {
|
15 | 2_Datenbytes_1 = Unterfunktion();
|
16 | 2_Datenbytes_2 = Unterfunktion();
|
17 | 2_Datenbytes_3 = Unterfunktion();
|
18 | 2_Datenbytes_4 = Unterfunktion();
|
19 | 2_Datenbytes_5 = Unterfunktion();
|
20 | 2_Datenbytes_6 = Unterfunktion();
|
21 | 2_Datenbytes_7 = Unterfunktion();
|
22 | .
|
23 | .
|
24 | .
|
25 | 2_Datenbytes_24 = Unterfunktion();
|
26 |
|
27 | /* bis 24 ist jetzt erst mal nur so als Beispiel. Kann aber durch aus möglich sein, dass es bis zu so einer Anzahl an Variablen kommt
|
28 | */
|
29 |
|
30 | /* Hier jetzt, entweder eine Funktion, welche der globalen Variable diese Datenbytes zuweist oder erst hier eine Lokale Variable, die die ganzen Bytes beinhaltet und dann in der main, entsprechend der globalen einfach überreicht wird
|
31 | */
|
32 | /* Dies ist dann je nachdem, wie man sich entschieden hat es zu lösen, erforderlich oder nicht.
|
33 | */
|
34 | return lokale_Variable;
|
35 | }
|
Ich bedanke mich im Voraus schon mal für konstruktive Kritiken und
Vorschläge.
Gruß,
Josef