eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaFast PWM - trójkąt zamiast sinusa na wyjściu › Re: Fast PWM - trójkąt zamiast sinusa na wyjściu
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!wsisiz.edu.pl!.POSTED!not-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Fast PWM - trójkąt zamiast sinusa na wyjściu
    Date: Wed, 20 Feb 2013 18:20:51 +0100
    Organization: http://www.wit.edu.pl
    Lines: 32
    Message-ID: <kg30ln$pkg$1@portraits.wsisiz.edu.pl>
    References: <kfo8i2$v93$1@portraits.wsisiz.edu.pl> <kfu24t$8te$1@node2.news.atman.pl>
    <kfu4gt$sd6$1@portraits.wsisiz.edu.pl> <kfufhu$u30$1@mx1.internetia.pl>
    NNTP-Posting-Host: amu235.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: portraits.wsisiz.edu.pl 1361380855 26256 83.26.76.235 (20 Feb 2013 17:20:55
    GMT)
    X-Complaints-To: a...@w...edu.pl
    NNTP-Posting-Date: Wed, 20 Feb 2013 17:20:55 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130215
    Thunderbird/17.0.3
    In-Reply-To: <kfufhu$u30$1@mx1.internetia.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:642885
    [ ukryj nagłówki ]

    W dniu 2013-02-19 00:56, Michoo pisze:

    > Dlaczego?
    >
    > volatile i const w jednym miejscu znaczy zazwyczaj "kompilatorze, zepsuj
    > mi tu optymalizacje".

    Kierowałem się analogią do wyczytanej kiedyś zasady, że wszystkie
    zmienne globalne używane w przerwaniach powinny mieć "volatile" przy
    definicji. "Const" z kolei dałem na wszelki wypadek, aby zabezpieczyć
    się przed możliwością zmiany zawartości tabeli po jej wypełnieniu.
    Rozumiem, że w przypadku stałej "volatile" nie jest wskazane?


    > Póki masz miejsce we flash to takie rzeczy powinieneś pakować w progmem.

    Jak rozumiem masz na myśli użycie avr/pgmspace.h i zdefiniowanie tablicy
    przez:

    prog_char sinus_buffer[] = {wartość 1, wartość 2, .., wartość n};

    oraz odczyt przez:

    pgm_read_byte(&sinus_buffer[sinus_ind])

    ?

    Rozumiem, że przy definicji takiej tabeli nie muszę stosować "volatile",
    nawet jeśli będę się do niej odwoływał w przerwaniu?

    Tak z ciekawości: jak zachowa się program przy próbie zapisania czegoś
    do takiej tabeli, przechowywanej w pamięci programu?

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: