eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikadspic33ep64mc504 i "atomowe"operacje na portach pytanie
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2016-05-02 10:35:44
    Temat: dspic33ep64mc504 i "atomowe"operacje na portach pytanie
    Od: "michal" <...@b...pl>

    Witam.
    Kompilator to XC wersja w trybie darmowym, optymalizacja 1.
    Wbrew temu co sugeruje help,

    "LATGbits.LATG5 = 1; /* No problem likely, this is an assignment of a
    single bit and will use a single instruction bit set operation */"

    przypisanie takie nie
    jest tlumaczone na pojedyncza instrukcji ustawiania bitu tylko realizaowane
    jako odczyt - modyfikacja- zapis portu.
    Gdy mamy to robione w main a w przerwaniu rowniez sa zapisy do tego
    portu powoduje to problem ktory ujawnia sie po losowym czasie.

    Pytanie czy istniej mozliwość ustawienia pinu portu w "atomowej" operacji
    za pomoca jakiejs wstawki asemblera ?
    Czy problem sie bierze z tytulu ze kompilator to wersja darmowa a w wersji
    pelnej bedzie dobrze.
    Rozwiazanie sugerowane przez help tj wylaczenie przerwan na czas modyfikacji
    portu w petli
    glownej (makro INTERRUPT_PROTECT )dziala ale nie jest dobre, po pierwsze
    blokuje przerwania, po drugie dodaje narzut.
    pozdrawiam.
    Michal






  • 2. Data: 2016-05-02 17:36:04
    Temat: Re: dspic33ep64mc504 i "atomowe"operacje na portach pytanie
    Od: Artur Miller <n...@n...com>

    W dniu 2016-05-02 o 10:35, michal pisze:
    > Witam.
    > Kompilator to XC wersja w trybie darmowym, optymalizacja 1.
    > Wbrew temu co sugeruje help,
    >
    > "LATGbits.LATG5 = 1; /* No problem likely, this is an assignment of a
    > single bit and will use a single instruction bit set operation */"
    >
    > przypisanie takie nie
    > jest tlumaczone na pojedyncza instrukcji ustawiania bitu tylko realizaowane
    > jako odczyt - modyfikacja- zapis portu.
    > Gdy mamy to robione w main a w przerwaniu rowniez sa zapisy do tego
    > portu powoduje to problem ktory ujawnia sie po losowym czasie.
    >
    > Pytanie czy istniej mozliwo?? ustawienia pinu portu w "atomowej" operacji
    > za pomoca jakiejs wstawki asemblera ?


    jeśli chcesz assembler, to zrób makro definiujące atomowy (jedną
    instrukcją) zapis do portu.


    a.


  • 3. Data: 2016-05-02 18:27:30
    Temat: Re: dspic33ep64mc504 i "atomowe"operacje na portach pytanie
    Od: Marek <f...@f...com>

    On Mon, 2 May 2016 10:35:44 +0200, "michal" <...@b...pl> wrote:
    > "LATGbits.LATG5 = 1; /* No problem likely, this is an assignment
    of a
    > single bit and will use a single instruction bit set operation */"
    > przypisanie takie nie
    > jest tlumaczone na pojedyncza instrukcji ustawiania bitu tylko
    realizaowane
    > jako odczyt - modyfikacja- zapis portu.

    Na pewno ta operacja r-m-w nie jest realizowana pojedynczą
    instrukcją w dspic33?
    Uważaj na XC w wersji darmowej, w tej wersji XC generuje dużo "dummy
    instructions" aby rozepchnąć i spowolnić kod. Być może analizując
    wygenerowany assembler dla
    LATGbits.LATG5 = 1;
    dałeś się wprowadzić w pole przez ekstra zbędne instrukcje.

    --
    Marek

strony : [ 1 ]


Szukaj w grupach

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: