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.

[STM32F4][C/Keil] - ADC1 + przerwanie od DMA transfer complete

07 Maj 2014 12:00 1488 2
  • Poziom 14  
    Witam,
    próbuję uruchomić przetwornik ADC1 wraz z transferem przez DMA i przerwaniem od zakończenia transferu (transfer complete)
    Tak, żebym w przerwaniu mógł sobie obliczać wartość średnią z napięcia na wejściu.
    Samo ADC z DMA bez przerwania od DMA działa, ale gdy dorzucam linijkę
    Kod: c
    Zaloguj się, aby zobaczyć kod

    czyli, gdy uruchamiam przerwanie od DMA - procesor się zawiesza już przy inicjalizacji ADC, nie wchodzi w ogóle do pętli while.

    Oto mój kod inicjalizacji ADC i DMA, a niżej Handler od przerwania:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Przerwanie:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Coś robię źle, ale nie mogę znaleźć błędu... Proszę o pomoc.

    Pozdrawiam,
    AC
  • Poziom 38  
    Nie wiem jak z ta zakrecona biblioteka od ST :) moj dzialajacy kod na STM32F407 z jednego projektu (z tym ze wyzwalanie ADC jest z Timera). Przerwanie DMA wyzwalane po zebraniu 8 probek...

    Twojego kodu nie analizuje bo ta biblioteka dziala czasami jak chce, z tego co pamietam na F4 chyba tez z nia mialem problem przy ADC i DMA...



    Kod: cpp
    Zaloguj się, aby zobaczyć kod
  • Poziom 14  
    Dziękuję za odpowiedź.

    Problem został rozwiązany. Polegał na tym, że źle usuwałem flagę przerwania od transferu DMA.

    Zamiast

    Kod: c
    Zaloguj się, aby zobaczyć kod


    powinno być:

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Pozdrawiam