eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaZagwozdka w C Keil. › Re: Zagwozdka w C Keil.
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: "Irek.N." <t...@j...taki.jest.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Zagwozdka w C Keil.
    Date: Mon, 11 Feb 2019 00:11:08 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 44
    Message-ID: <q3qb28$221$1@node2.news.atman.pl>
    References: <q3q59d$hp9$1@node1.news.atman.pl>
    <5c60a8b5$0$21611$426a74cc@news.free.fr>
    NNTP-Posting-Host: 77-253-172-130.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: quoted-printable
    X-Trace: node2.news.atman.pl 1549840264 2113 77.253.172.130 (10 Feb 2019 23:11:04
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sun, 10 Feb 2019 23:11:04 +0000 (UTC)
    User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
    In-Reply-To: <5c60a8b5$0$21611$426a74cc@news.free.fr>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:740904
    [ ukryj nagłówki ]

    > Pierwszy wariant wydaje się bardzo sensowny. Kompilator zepsuty? A może
    > typ int nie jest atomiczny, i kompilator sprawdza najpierw jednego nibbla,
    > i dopiero jeśli ten okaże się zerowy to zajmie się drugim?
    > Próbowałeś może zastąpić jakimś sig_atomic_t?

    Nie, na razie nic nie próbowałem.

    > Ten drugi przykład to w ogóle lichy jest, bo pętla ma teoretyczne prawo
    > zostać przerwana za każdym razem kiedy wartość DEL_STEP zostaje zmieniona
    > z wartości o zerowym MSB do wartości o zerowym LSB (np. 0x0034 -> 0x1200)
    > - a to dlatego, że los może złośliwie zechcieć wykonać twoje przerwanie
    > akurat pomiędzy liniami:
    >
    > DEL_LSB = DEL_STEP/0x100;
    > DEL_MSB = DEL_STEP^0x100;

    To prawda, ale przynajmniej pozwoliło mi potwierdzić przyczynę problemów.
    W ogóle kiepsko to przepisałem, znaczek modulo mi się omsknął i jak sam
    zauważyłeś - zamieniłem połówki. Sorki. Zamysł był taki jak podejrzewałeś.

    > Swoją drogą, trochę dziwnie patrzeć na dzielenie w takiej operacji. Jeśli
    > kompilator mądry, to zoptymalizuje twoje "/ 0x100" do ">> 8", ale jeśli
    > na to nie wpadnie... to będzie mało ekologicznie.

    Radzi sobie z takimi zapisami sensownie.

    THX, postaram się wrzucić jak tylko będę mógł kod wynikowy tego fragmentu.

    Miłego.
    Irek.N.

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: