[elektro] C kerdes - macro szamlalo
Rancz Lajos
csiga at fosch.com
Wed Sep 23 20:01:58 CEST 2009
Szia!
Ilyen jellegű problémát én Python/Perl előfeldolgozó scripttel oldanék
meg ami a prebuild szakaszban legyártja a táblát előre egy C fájlba és
az a fordítás során belefordul.
Üdv,
Lajos
Moczik Gabor írta:
> hg12345 wrote:
>
>> Nem ez lenne a megoldás
>>
>> Kell egy header ami tartalmazza az ENUM definiciót
>>
>> typedef enum ŕ2D9indexID={ ID_A=0,ID_B, ID,_C } ID_t;
>>
>> Ezt ahová kell includolod, is mindent itt bővítesz.
>>
>
> Sejtette, hogy nem fog menni amit akarok, de közben kiderült, hogy talán nem
> is kell. Inkább leírom az eredeti komplex problémát, biztos van itt aki
> jobban vágja ezt.
>
> Az egészre tekintsünk úgy, hogy ez jelen pillanatban egy 8 bites PIC-en kell
> fusson, tehát nem lehet a világ végéig bonyolítani...
>
> Eseményvezérelt rendszer készül, amolyan kooperatív multitask szerűség, bár
> köze nincs hozzá. :-)
> A főprogram annyit csinál, hogy egy végtelen ciklusban kiolvassa egy
> globális eventq-ból az eseménykódot, majd meghívja a hozzá tartozó függvényt
> ami valamit csinál, új eseményt generálhat, stb., de mindenképp vissza kell
> térjen. A megszakítás rutin is lekezeli a maga nagysebességű problémáit, és
> ha valami van (pl. billentyűnyomás) ott is keletkezhet esemény.
>
> A probléma amit nem tudok OOP szemlélet szerint jól megoldani, hogy mindenki
> csak a rá tartozó dolgokkal foglalkozzon. Pl. ahhoz hogy meghívjam az
> esemény kezelő függvényt a main()-ben lévő ciklusnak tudnia kell az összes
> létező eseményről és a hozzá tartozó függvényről.
>
> Egy lehetséges verzió, hogy minden egység az inicializáció során
> regisztrálja a saját eseménykezelőit, aminek a vége, hogy egy globális
> tömbbe bekerül egy függvénycím. A main előkotorja a címet és meghívja. Innen
> már az a bajom, hogy ez nem dől el fordítási időben, tele lesz a kód egy
> csomó szükségtelen indirekt hívással és az ehhez szükséges tábla is sok
> helyet foglal, arról nem is beszélve, hogy egy véletlen kis memória
> korrupció a másvilágra sodorja a rendszert.
>
> Egy másik (eddig a legelfogadhatóbb) ötlet, hogy minden egység rendelkezik
> egy saját eseménykezelővel. Hátránya, hogy ekkor mindegyiken át kell hajtani
> az üzenetet, mire valaki foglalkozik vele. Talán nem olyan lassú. És az a
> probléma is fennáll még mindig, hogy az egész rendszeren belül egyedi
> azonosítókat kell kiosztani...
>
> Nahh, elfogadok minden építő jellegű kritikát. :-)
>
>
More information about the Elektro
mailing list