eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaArduino błąd dzielenia - czy są testy dla atmegi?Re: Arduino błąd dzielenia - czy są testy dla atmegi?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
    0.net!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.
    com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-me
    dia.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.ne
    ostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "J.F." <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    References: <5c081b42$0$485$65785112@news.neostrada.pl>
    In-Reply-To: <5c081b42$0$485$65785112@news.neostrada.pl>
    Subject: Re: Arduino błąd dzielenia - czy są testy dla atmegi?
    Date: Wed, 5 Dec 2018 21:37:13 +0100
    MIME-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
    X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
    Lines: 32
    Message-ID: <5c083730$0$507$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.26.85.126
    X-Trace: 1544042288 unt-rea-b-01.news.neostrada.pl 507 83.26.85.126:56621
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 2345
    X-Received-Body-CRC: 3401123923
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:738680
    [ ukryj nagłówki ]

    Użytkownik "Cezary Grądys" napisał w wiadomości grup
    dyskusyjnych:5c081b42$0$485$6...@n...neostrada.
    pl...
    >Kupiłem sobie na próbę klona Arduino nano na Allegro.
    >Działa ok, ale przyłapałem go na błędzie.
    >Otóż kombinuję, żeby zrobić programowany generator przez
    >podział częstotliwości zegara. Wysyłałem częstotliwość
    >przez USB i zwrotnie dostawałem obliczony podzielnik.
    >Raz jeden (za pierwszym uruchomieniem) zdarzyło się, że

    >16000000/0.2 wyszło 80000008

    >Najpierw pomyślałem, że funkcja nie nadaje się do dzielenia przez
    >niewielkie ułamki, bo inne wyniki były dobre. Ale wpisałem jeszcze
    >raz to 0.2 i dostałem prawidłowy wynik, czyli 80000000.
    >No i zagwozdka, mogło przekłamać przy liczbie binarnej, ale również
    >przy transmisji, znak '0' i '8' tez różni się 1 bitem, podobnie jak
    >wartość binarna.
    >Jestem pewny dobrego podania dzielnika, bo wypisywał zwrotnie dane.

    Istotnie zagwozdka - czemu 1 raz. Moze i przeklamany bit.

    Bo jest jeszcze druga - jak oni/ty to liczysz.

    0.2 nie ma dokladnej reprezentacji w binarnym formacie
    zmiennoprzecinkowym.

    Wiec jesli jest jakas biblioteka zmiennoprzecinkowa uzyta, to mamy w
    pamieci naprawde liczbe
    0.199999... i tu juz moze sie 8000008 pojawic :-)

    J.

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: