Skocz do zawartości

Akamaru113

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Warszawa
  • Zawód
    student
  • Moje zainteresowania:
    elektronika

Osiągnięcia użytkownika Akamaru113

Aktywny debiutant

Aktywny debiutant (2/19)

  • To już rok!

Odznaki

0

Reputacja

  1. Witam, czy jest możliwość podejrzeć kod programu, staram się zrobić coś podobnego, ale na STM32 i jestem ciekawy jak próbkowany jest sygnał ? W sensie, jak udaje się zachować prędkość pomiaru i działanie całego programu. Bardzo chciałbym coś takiego wykonać, ale wiadomo po swojemu 🙂 Dlatego na razie szukam inspiracji jak się do tego zabrać.
  2. Na początku dziękuję, za szybką odpowiedź. A mój problem udało mi się rozwiązać. Otóż nie zdawałem sobie sprawy, że przerwanie HAL_ADC_ConvCpltCallback występuje także przy użyciu DMA, więc mogłem normalnie dokonać pomiaru dwóch sygnałów i zamiast używać ich w pętli głównej użyłem ich właśnie w callback'u w miejscu HAL_ADC_GetValue(&hadc1) wtedy pojedynczym if'em mogę decydować, czy moja funkcja się wykona, a jak tak to dopóki się nie wykona pomiary zostają zatrzymane. Rozwiązanie bardzo proste, ale jak to w życiu bywa najtrudniej znaleźć to co leży na widoku. Odpowiadając na pytanie, to pomiary dokonywały się za szybko i pętla główna programu nie miała kiedy się wykonać (przy najmniej tak wywnioskowałem, po tym jak zwykłe dodawanie nie zwracało w STMStudio wyniku, a jedynie początkowo zadeklarowaną wartość).
  3. Obsługa ADC jest bardzo obszernie i przejrzyście opisana w kursie: https://forbot.pl/blog/kurs-stm32-f4-5-pomiar-napiecia-adc-dma-stmstudio-id13099 Nie wiem na ile ten link się Tobie przyda, ale powinien pomóc. Sam mam problem z pomiarami z ADC, ale u mnie to pomiar z wielu kanałów, a Tego w kursie akurat brakuje :/ Co prawda kurs jest na STM F4, ale z tego co widzę, to możesz użyć tej wiedzy do swojego projektu.
  4. Hej, mam pytanie odnośnie korzystania z ADC, mianowicie: Chciałbym dokonywać dwóch pomiarów i zależało by mi na zebraniu kilkudziesięciu próbek i w przypadku przekroczenia granicy sygnału na jednym z kanałów przerwać dokonywanie pomiarów do czasu wykonania się pętli głównej programu z obliczeniami. Tu pojawia się moje pytanie jak najłatwiej to osiągnąć przerwaniami, DMA ? A przy okazji jak tego dokonać ? Myślałem, czy da się po każdej konwersji z 2 kanałów, wrzucić pomiary do buforów kołowych i sprawdzić, czy na jednym z nich nie został przekroczony próg, następnie wstrzymać dokonywanie pomiarów, żeby mogły się dokonać obliczenia w głównej pętli programu. Żeby trochę rozbudować post to dodam, że planuję porównywać sygnał z dwóch mikrofonów w celu znalezienia kierunku z którego dochodzi dźwięk, dlatego zależy mi na maksymalnej prędkości pomiaru, w celu zwiększenia dokładności. Byłbym niezmiernie wdzięczny za każdą próbę pomocy, bo przeszukuję internet już kilka dni i nie potrafię wyciągnąć jakieś przydatnej informacji zbliżającej mnie do rozwiązania problemu :/ .
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.