[elektro] C tesztsor makróban ?

hg12345 hg12345 at freemail.hu
Mon Dec 21 12:41:32 CET 2015


Egy kérdésem azért lenne, milyen fordító, mert a normál C-ben így hivatkozni bitre nem láttam.
Kivéve a CORTEX M3 feletti eszközöknél, ahol van HW bitbanding

valamin belül szeretnél ilyet csinálni

#define bittoggle(valtozo,bitno)     valtozo^=1<<bitno

arra érdemes ügyelni, ha a változót "volatile" határozd meg, egyébként optimalizálás után a debugban érdekes dolgok történhetnek. :-()



elight <elight at gmail.hu> írta:
>Ez szimpi, de hogy lesz meg a togle bit egy sorban (makróban)?
>( ..lehet még mindig nem ébredtem fel teljesen? )
>
>A lényeg ahányszor ráfutok egy makróra ,
>   fordítsa meg a paraméterben szereplő számú port  bitet.
>
>Üdv István
>2015-12-21 11:37 keltezéssel, hg12345 írta:
>> #define outbit_Bx(no,val)    outbit_B##no = val
>>
>> pl:
>>   outbit_Bx(4,0)  kifejtve:
>>      outbitB4=0
>>
>>
>> Vigyázz a "no" stringként kerül helyettesítésre! váltózó nem adható neki!
>>
>>
>> erre gondoltál?
>>
>> elight <elight at gmail.hu> írta:
>>> Sziasztok.
>>>
>>> Kicsik nehezen indul a reggel .. ( mármint agyilag :)
>>>
>>> Mondjuk van egy függvényem:
>>>
>>>
>>>
>>> unsigned char  tst_Bx_togle[16];
>>>
>>> teszt_B( unsigned char bindex )
>>> {
>>>     if( tst_Bx_togle[ bindex ] == 0 )
>>>     {
>>> tst_Bx_togle[ bindex ]  = 1;
>>>         outbit[bindex] = 1;
>>>     }
>>>     else
>>>     {
>>>
>>> tst_Bx_togle[ bindex ]  = 0;
>>>         outbit_B[bindex] = 0;
>>>     {
>>> }
>>>
>>>
>>>
>>>
>>> Valami ilyesmit kellene elkövetnem..
>>> De jó lenne ha egysoros makró-ra konvertálható lenne
>>> és nem kellene bittömböt felvennem meg biteket forgatnom
>>> sem a toglénak , sem a port bitmezőnek.
>>>
>>> tehát  egy makró utasítást szeretnék beszúrni több biten
>>> sok sok helyre.
>>>
>>> pl.
>>> ..
>>> teszt_B1;
>>> ...
>>> teszt_B5;
>>> ...
>>>
>>>
>>> Megoldható ez így ,  elegánsosan?
>>>
>>> Üdv István
>>>
>>>
>>> -----------------------------------------
>>>           elektro[-flame|-etc]
>>>
>> -----------------------------------------
>>            elektro[-flame|-etc]
>
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list