Danke,
ich habe mir das falsch gedacht...
Ich habe gedacht, dass ich an die Funktion die Adresse von einem
"Handler" mit einer ID oder sowas übergeben muss, die ich vorher
festlege.
Mark Brandis schrieb:
> Ampel my_ampel; // Eine Variable von Typ "Ampel" anlegen
> ampel_init(&my_ampel); // Adresse der angelegten Variable übergeben
Also ich lege eine Variable (typ structure) an und übergebe diese ohne
irgendeine Zuweisung. Die Variable wird dann in der Funktion
weiterverarbeitet (und weitergegeben als Adresszeiger).
Ok. Also nach der Initialisierung kann ich dann direkt auf die SM
ampel_runCycle() zugreifen?
Der Codegenerator hat recht viele Funktionen erstellt (in ampel.c),
deren Zweck ich noch nicht erkennen kann.
Ich muss ja jetzt in den State 0 gelangen (Ampel rot) und dann durch
eine Benutzeraktion (Tastendruck) in den Zustand State 1 gelangen usw.
Vielleicht kann mir da jemand helfen?
1 | char getbutton(void)
|
2 | {
|
3 | //Tastenabfrage
|
4 | return (1);
|
5 | }
|
6 |
|
7 |
|
8 | void main (void)
|
9 | {
|
10 | Ampel my_ample;
|
11 | Nop();
|
12 | Nop();
|
13 | Nop();
|
14 | ampel_init(&my_ample);
|
15 | ampel_enter(&my_ample);
|
16 | while(1)
|
17 | {
|
18 | if(getbutton()==1)
|
19 | {
|
20 | ampelIfaceUser_raise_tick(&my_ample);
|
21 | }
|
22 | ampel_runCycle(&my_ample);
|
23 | }
|
24 | }
|