[elektro] Bináris reprezentáció C-ben
Topybear
topybear at gmail.com
Wed Jan 17 17:49:02 CET 2018
Egyedi karakterek definiálásakor megfizethetetlen, hogy a bitmaszk
kirajzolja a mintát. :)
Topy
> Hali!
>
> Egyébként, azon gondolkodtam, hogy mikor van legtöbbször erre szükség és
> arra jutottam, hogy valójában ritkán van szükség közvetlenül bitmintákat
> megadni a kódban.
> Általában akkor akarunk megadni bitmimtát, ha valami vezérlőregiszterben
> kell dolgokat beállítani.
> De akkor meg meg sokkal olvashatóbb kódot ad a
>
> #define IT_EN (1<<7) // vagy 0x80 vagy 0200
> #define OVF_DIS (1<<6) // vagy 0x40 vagy 0100
> stb..
>
> majd
>
> TM2CTL = IT_EN | OVF_DIS;
>
> mintha azt írnánk, hogy TM2CTL=B11000000; // netán 0xc0 vagy 0300
>
> Egyrészt a kód olvashatóbb, kevésbé lehet elgépelni és utána órákig
> keresni, hogy az adott periféria miért nem úgy megy, ahogy akarjuk. Az
> értékeket a fordító fordítási időben kiszámolja, tehát nincs semmiféle
> veszteség ahhoz képest, mintha beírnánk kézzel.
> Másrészt ha más kontrolleren esetleg kicsit máshogy vannak a bitek, akkor
> elég a .h fájlban cserélni. Harmadrészt ilyenkor (ha olyan a hw) az egyes
> biteket szépen manipulálhatjuk olvashatóan , mint pl. TM2CTL=TM2CTL &
> ~IT_EN ;
>
> Tehát ha kulturált kódot ír az ember, akkor valójában ritkán van szükség
> arra, hogy bitmintákat aggasson a kódba. Ha meg mégis van, mert más okból
> kellenek mágikus konstansok, azokat meg megint illik defineként vagy
> konstansként egy helyen leírni, és utána nevén nevezve használni, szintén
> olvashatóság és karbantarthatóság szempontjából.
> Szóval szerintem nagy szükség nincs is arra, hogy teleszórhassam a kódot
> B001101110101110101 jellegű dolgokkal.
>
> Szabolcs
>
>
> 2018. január 17. 16:17 Bali Zoltan írta, <eltexto at freemail.hu>:
>
>> Bezony!
>>
>> Üdv. Zoli
>>
>>
>> 2018.01.17. 14:52 keltezéssel, FuzArn írta:
>>
>>> Csinalni kell egy #define-os makrot ra, es egymas melle pakolni a 8
>>> biteseket. Amugy sem latnal at 32db 0-1-t egymas mellett, csak praktikusan
>>> 8-asaval tagolva.
>>>
>>>
>>>
>>> A.
>>>
>>> On 2018. Jan 17., at 13:47, Balla Zoltán <sdrlab at yandex.ru> wrote:
>>>> 2018.01.17. 12:26 keltezéssel, Moravcsik Szilárd írta:
>>>>
>>>>> Esetleg kis programot írni (BASIC, Python, stb.) és azzal
>>>>> legeneráltatni?
>>>>>
>>>> Az működne..., de 32 bit esetén valami irdatlan nagy file lenne a vége!
>>>>
>>>> Zoli
>>>>
>>>> -----------------------------------------
>>>> elektro[-flame|-etc]
>>>>
>>> -----------------------------------------
>>> elektro[-flame|-etc]
>>>
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list