eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDefiniowane portów/flag w C › Re: Definiowane portów/flag w C
  • Data: 2017-10-20 09:43:05
    Temat: Re: Definiowane portów/flag w C
    Od: Marcin <m...@o...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]


    > A na bezczelnego ?
    >
    > #define F_LED GPIO,7
    >
    > ... setbit(F_LED) ...
    >
    > https://gcc.gnu.org/onlinedocs/cpp/Argument-Prescan.
    html
    >

    Do takiego zadzialania potrzeba "podwojnego makra":

    #define _test_set_bit(port,pin) do{ (port)->PDOR |=(1<<(pin)); }while(0)
    #define test_set_bit(x) _test_set_bit(x)
    #define LEG_G_7 GPIOB,7

    i wtedy
    test_set_bit(LEG_G_7);
    preprocesor rozwinie poprawnie:
    do{ (((GPIO_Type *)(0x400FF040u)))->PDOR |=(1<<(7)); }while(0);

    Przy pojedynczym makro (jak pierwsze) arm-none-eabi-gcc zglasza blad ze makro ma miec
    2 parametry a przekazany jest tylko 1.

    $ arm-none-eabi-gcc -E -mcpu=cortex-m0plus makro.c -o makro2.lst
    makro.c:14:23: error: macro "test_set_bit" requires 2 arguments, but only 1 given
    test_set_bit(LEG_G_7);



    Marcin

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: