doc + ADC

This commit is contained in:
Elise Le Roux 2021-10-15 16:44:10 +02:00
parent 0a3d76359a
commit f34021bd5f
2 changed files with 45 additions and 0 deletions

18
Drivers/MyADC.c Normal file
View file

@ -0,0 +1,18 @@
#include "MyADC.h"
void MyADC_Init ( char input_channel ) {
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; // Active l'horloge de l'ADC
RCC->CFGR |= RCC_CFGR_ADCPRE_DIV6; // Divise par 6 la fréquence d'entrée qui doit être < 14 MHz
ADC1->CR2|= ADC_CR2_ADON; // Active l'ADC
ADC1->SQR1 &= ADC_SQR1_L; // 1 voie à convertir
ADC1->SQR3|= input_channel; // sélectionne la voie à convertir
//ADC1->CR2 |= ADC_CR2_CAL; // début de la calibration
//while (ADC1->CR2 & ADC_CR2_CAL); // attente de la fin de la calibration
}
int convert_single(){
ADC1->CR2 |= ADC_CR2_ADON; // lancement de la conversion
while(!(ADC1->SR & ADC_SR_EOC) ) {} // attente de la fin de conversion
ADC1->SR &= ~ADC_SR_EOC; // validation de la conversion
return ADC1->DR ;//& ~((0x0F) << 12); // retour de la conversion
}

27
Drivers/MyADC.h Normal file
View file

@ -0,0 +1,27 @@
#ifndef MYADC_H
#define MYADC_H
#include "stm32f10x.h"
/*
*****************************************************************************************
* @brief
* @param -> - char input_channel : de 0 à 17
* @Note ->
*************************************************************************************************
*/
void MyADC_Init ( char input_channel);
/*
*****************************************************************************************
* @brief
* @param -> - char input_channel : de 0 à 17
* @Note -> Débute la conversion et retourne son résultat.
La fonction MyADC_Init doit avoir é lancée au préalable.
*************************************************************************************************
*/
int convert_single(void);
#endif