Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

XMega 64/128A3 - Kontroler DMA - konfiguracja

24 Lis 2016 10:18 630 1
  • Poziom 9  
    Witam ,
    Po dłuższej przerwie próbuję się przeprosić z AVR-ami , przechodząc jednocześnie do XMega, zadanie jest proste - pomiar obrotów z wejścia PC0 .
    1. Timer TCC1 - odmierza czas 100us
    2. Timer TCC0 - używa przepełnień TCC1 jako zegara , strobem do pomiaru okresu / "częstotliwości" jest routowany sygnał z PC0
    3. Flaga TCC0_CCA ma być z kolei wyzwalaczem dla DMA do skopiowania tego rejestru do bufora kilkuelementowego w SRAM.

    Uwaga : Problem opisuję na podstawie symulatora w Atmel_Studio 7 - najnowsze.

    Otóż kontroler daje się skonfigurować jedynie przy opcji wyzwalania "ręcznego",
    próba konfiguracji wyzwalacza przez DMA_CH_TRIGSRC_TCC0_CCA_gc , powoduje zresetowanie kontrolera DMA .

    "Będących na ty z XMega" proszę o radę , uwagi ..
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 9  
    Witam , kolejny raz ,
    Wniosek - główny problem- pośpiech , w konfiguracji DMA_CH0_CTRLA użyłem
    zamiast maski bitowej DMA_CH_SINGLE_bm - pozycję DMA_CH_SINGLE_bp !!!, co oczywiście "skaszaniło" całą konfigurację, mea culpa.
    poza tym jeszcze kilka mniej katastrofalnych błędów ..

    poprawna konfiguracja jest następująca :
    Kod: c
    Zaloguj się, aby zobaczyć kod


    zatem na poziomie symulatora sprawa wydaje się rozwiązana , w praktyce sprawdzę jak dojdzie płytka i polutuję .. :cry: