eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProgramowanie MCU - największa liczbaRe: Programowanie MCU - największa liczba
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.157.25.139.242
    !not-for-mail
    From: "J.F" <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Programowanie MCU - największa liczba
    Date: Mon, 27 Feb 2023 19:08:52 +0100
    Organization: news.chmurka.net
    Message-ID: <jre69ho3bayl$.1jsifsagd7gyp.dlg@40tude.net>
    References: <f...@g...com>
    <63fc9877$0$9593$65785112@news.neostrada.pl>
    <xbtrd9ptn8kd.vaob8e0bmqdi$.dlg@40tude.net>
    <63fcdeec$0$19617$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 157.25.139.242
    Mime-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    Injection-Info: news.chmurka.net; posting-account="jfoxwr";
    posting-host="157.25.139.242"; logging-data="2926";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: 40tude_Dialog/2.0.15.1
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:778673
    [ ukryj nagłówki ]

    On Mon, 27 Feb 2023 17:48:44 +0100, Adam Górski wrote:

    > W dniu 27.02.2023 o 16:23, J.F pisze:
    >> On Mon, 27 Feb 2023 12:48:06 +0100, Adam Górski wrote:
    >>> W dniu 26.02.2023 o 01:35, Stachu Chebel pisze:
    >>>> Używam Kinetis Design Studio. MCU: Arm Cortex-M4. Dokładnie jest to
    >>>> MK22FN512VLH12. Definiuję zmienną globalną : double a; .
    >>>> W przerwaniu zmienna jest inkrementowana: a=a+Byle_Co;
    >>>> Program działa poprawnie, ale do pewnego momentu czasowego.
    >>>> W pewnym momencie idzie "w maliny". Sekwencja:
    >>>>
    >>>> a=a+Byle_Co;
    >>>> if(a>Max)a=0;
    >>>>
    >>>> rozwiązuje problem. Ile maksymalnie mogę ustawić Max? Za cholerę nie mogę
    >>>> się doszukać maksymalnej wartości zmiennej typu "double" dla mojego MCU.
    Eksperymentalnie ustawiłem Max=1e6. Program nie idzie w maliny. Jakie może być
    największe Max?
    >>>>
    >>>
    >>> Problemem jest , że double jest zmiennoprzecinkowe i jak każdy typ
    >>> posiada swoją rozdzielczość.
    >>>
    >>> W przypadku a=a+Byle_co; w pewnym momencie osiągnie wartość stacjonarną
    >>> i nie będzie się już zwiększać bo Byle_Co będzie poniżej błędu
    >>> pojedynczego bitu dla formatu double ( no chyba że się przekręci ).
    >>
    >>
    >> Sugerujesz ze "program idzie w maliny" oznacza, tzn jest skutkiem
    >> tego, ze przestala sie zmienna zwiekszac?
    >> Moze i tak.
    >>
    >> Zanim sie to osiągnie, to bedzie jeszcze etap, ze zwiększa sie o nieco
    >> inną wartosc, bo jest to Byle_co zaokrąglane do aktualnej
    >> rodzielczosci.
    >>
    >> Ale tak czy inaczej to nastąpi po bardzo wielu dodawaniach, kolega by
    >> chyba nie doczekal.
    >>
    > Nie mogę sobie tego inaczej wyobrazić skoro po ograniczeniu do jakiegoś
    > poziomu - działa.

    Werjsa druga - osiaga wartosc maksymalną, jakis wjątek sie generuje
    i nie wiadomo co program wtedy zrobi ..

    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: