Jak v C zachazet hromadne s porty?

Jan Waclawek konfera na efton.sk
Pátek Duben 13 15:57:43 CEST 2018


Inak toto

> to cislo inkrementovat


Tak to zrejme nepojde ani v tom C++ - teda bez toho pretazenia operatorov,
co je neprakticke len preto, lebo pre "ciste" riesenie by bolo treba
pretazit uplne vsetky.

Ale co by pravdepodobne slo a bolo by ako riesenie elegantne je ponorit sa
do prekladaca - gcc je open source, vsakano - a implementovat to tam, ako
akusi "vynimku". Napokon, v avr-gcc take vynimky uz existuju (napr. pre
spravny postup pri pristupe k 16-bitovym SFR registrom, kde zalezi na
poradi pristupu, ako je to u timerov).

... ked uz je ten piatok...

wek



----- Original Message ---------------
>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 :)
>
>Poradite figl?
>
>Diky.
>
>Pavel Kutina



Další informace o konferenci Hw-list