eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaDefiniowane portów/flag w CRe: Definiowane portów/flag w C
  • X-Received: by 10.31.69.204 with SMTP id s195mr350711vka.12.1508485386172; Fri, 20
    Oct 2017 00:43:06 -0700 (PDT)
    X-Received: by 10.31.69.204 with SMTP id s195mr350711vka.12.1508485386172; Fri, 20
    Oct 2017 00:43:06 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-medi
    a.com!news.highwinds-media.com!k31no411361qta.1!news-out.google.com!v14ni792qtc
    .0!nntp.google.com!z50no411599qtj.0!postnews.google.com!glegroupsg2000goo.googl
    egroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Fri, 20 Oct 2017 00:43:05 -0700 (PDT)
    In-Reply-To: <1xlu667d0kdpl$.12zxaizy0gr8j.dlg@40tude.net>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=62.218.30.210;
    posting-account=LtRNCAoAAAACVwjGJC66ygSl50zdeDtv
    NNTP-Posting-Host: 62.218.30.210
    References: <osa0qm$mhc$1@node1.news.atman.pl> <osa3ci$tb1$4$gof@news.chmurka.net>
    <osa55j$r0r$1@node1.news.atman.pl> <f...@m...uni-berlin.de>
    <osatlp$gjd$1@node2.news.atman.pl> <osav0g$hoj$1@node2.news.atman.pl>
    <1xlu667d0kdpl$.12zxaizy0gr8j.dlg@40tude.net>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <2...@g...com>
    Subject: Re: Definiowane portów/flag w C
    From: Marcin <m...@o...pl>
    Injection-Date: Fri, 20 Oct 2017 07:43:06 +0000
    Content-Type: text/plain; charset="UTF-8"
    X-Received-Body-CRC: 706440485
    X-Received-Bytes: 2241
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:725115
    [ ukryj 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: