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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.