Skocz do zawartości

Multipleksowanie ADC w F0


bart921

Pomocna odpowiedź

Cześć! od wielu dnia(tak) walczę z tym, co na AVRkach można było zrobić w 5 minut z notą katalogową. A mowa o multipleksowaniu wejść przetwornika ADC.

Chciałbym w dodatku wykorzystać przerwania bądź DMA.

Procek na jakim pracuję to STM32F030F4.

W tym momencie konfiguracja wygląda jak na załączonym screenie.

Natomiast kod wygląda tak:

W sekcji UC(usercode) 2 mam dopisany start:

  /* USER CODE BEGIN 2 */
	HAL_ADC_Start_IT(&hadc);
  /* USER CODE END 2 */

 

Natomiast w sekcji PFP dopisałem taką funkcję:

/* USER CODE BEGIN PFP */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){
	reading[0] = HAL_ADC_GetValue(&hadc);
}
/* USER CODE END PFP */

Efekt? Nic nie działa. Odczyt z przetwornika to wciąż 0.

Kiedy robiłem to pollingiem w pętli while, funkcja GetValue zwracała naprzemiennie(ale bez ładu) wyniki z 3 potencjometrów. Natomiast to słaba metoda. jak to ugryźć? Dodam, że w F0 jedyną metodą jest opcja ScanMode.

Zrzut ekranu z 2019-08-17 21-13-21.png

Edytowano przez bart921
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.