( tovis | 2015. 06. 05., p – 19:13 )

Kicsit elnyúlt szünet után megint elővettem a témát.
Az új verzió teljesen jól működik, nincsenek "anomáliák".
Viszont most beleszaladtam abba, hogy miért is szűnt meg az SBI ill. az CBI makró a gcc-avr -ben.
Az ezzel kapcsolatos "viták" mintha 2005 tájékán lezajlottak volna. Én úgy értettem, hogy a bitwise műveleteket, ami addig mint makró létezett, kivették mivel a fordító ezt magától is elvégzi. Én ezt nem látom - csak a próba kedvéért a TIMSK beállítását kétféle képpen is megadtam - ugyan azt fordítja. Való igaz, hogy jelen példában ennek nincs jelentősége, de az előző (hibás timer kezelés) pont ezen bukott. Most a kis assembly rutinokkal ez a eltűnt.
Most akkor kezdjem megtanulni az inline assemblert, hogy tudjam használni a bitwise port műveleteket?
Ráadásul, az igazi az lenne ha ezeket az adott helyre beforgatná, mint a makrót. Esetleg írjak egy kupac makrót?
Most beleütköztem a C korlátaiba, vagy csak rosszul használom? Mi van ha mondjuk egy bitfield -et akarok kezelni különféle interruptokból és a főprogramból?
Ráadásul, ez még csak a példában sem túl optimális, hiszen az SBI 2 ciklus, a fordító pedig 3 ciklusra fordította.
Nem értem :(

* Én egy indián vagyok. Minden indián hazudik.