Jak v C zachazet hromadne s porty?

Jindroush jindroush na seznam.cz
Pátek Duben 13 15:06:56 CEST 2018


Dobrej,

nenapada me figl. Proste si udelam funkci/inline fci/makro myportwrite, 
kde si provedu ten prevod bitu na ty spravne bity realnych portu.

Pokud se to cislo da z tech pinu cist, tak si udelam myportread. Pokud 
se cist neda, musim si na to zalozit globalni promennou.

A zbytek si uz slozim.

J.

On 13.4.2018 14:55, Pavel Kutina wrote:
> Zdravim,
> 
> mam takovy zadrhel, a protoze nejsem Cckar, asi mi neco duleziteho unika.
> 
> Mam ATmega128 (s arduinovskym bootloaderem a cele to pisu na Arduinu, 
> ale to je pro tenhle ucel asi jedno), na ni pouzivam skupinu pinu, se 
> kterymi bych chtel zachazet nejak hromadne - potrebuju nastavit 
> sestnactibitove cislo, co bit, to jeden pin. Piny jsou ale rozhezeny 
> pomerne nahodne, prakticky nikde nemuzu pouzit cely port, takze neco 
> jednoducheho, jako PORTA = 0x45; PORTB = 0xDE; neprojde, protoze nemam 
> cely PORTA ani PORTB a doplnuji to dalsimi piny z jinych portu.
> 
> Poteboval bych tedy vytvorit nejake 'cosi', k cemu se budu chovat jako k 
> sestnactibitovemu portu, tedy tak, abych mohl pouzit konstrukci jako 
> PORTQ = 0xDE45;, to cislo inkrementovat, porovnavat atd. Docela dost by 
> mi to zjednodusilo zivot dale v kodu :)
> 
> Napadaji mne ruzna reseni, jen jsou dosti krkolomna - predpokladam, ze 
> zkuseny Cckar si ted klepe na hlavu a rika si "nadefinuj to jako NNN a 
> nemusis nad tim premyslet" - ale ja nejsem zkuseny Cckar :)


-- 
Jindroush <jindroush at seznam.cz>


Další informace o konferenci Hw-list