Skocz do zawartości
bart921

Multipleksowanie ADC w F0

Pomocna odpowiedź

Napisano (edytowany)

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

Udostępnij ten post


Link to post
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!

Gość
Napisz odpowiedź...

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