[elektro] Bináris reprezentáció C-ben

elight elight at gmail.hu
Wed Jan 17 17:57:14 CET 2018


Bingó!
Ez nekem is sokszor jól jött! :-)
pl.:
Nemrég készítettem grafikus nyomtatás emulátort
tesztelési céllal karakteres képernyőre hőpapíros cucchoz.
( Van olyan hogy nem jó olvashatatlan a hőpapír
    legalább a monitoron a javításig látható legyen
  mit is nyomtatott  volna. Itt a fejlécet a progi
    éppen egy bit tömbből veszi. )
Szóval tényleg lehet olyan, hogy kell az a  bitminta!


Üdv István


2018-01-17 17:49 keltezéssel, Topybear írta:
> 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]
>
>
> -----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list