| Next revision | Previous revision |
| fr:software:homelab:library:adc [2010/03/09 12:57] – créée sdeniaud | fr:software:homelab:library:adc [2020/07/20 12:00] (current) – external edit 127.0.0.1 |
|---|
| ====== Analog to digital converter ====== | ====== Convertisseur analogique numérique ====== |
| |
| This library provides functions to use AVR analog to digital converter. All the conversion functions in library are blocking, which means that the processor waits as long as it takes to get the results. The conversion time depends on the ADC clock. | Cette librairie fourni des fonctions permettant d'utiliser le convertisseur numérique AVR. Toutes les fonctions de conversion de la librairie sont bloquées, cela signifie que le processeur attend aussi longtemps qu'il sera nécessaire pour obtenir un résultat. Le temps de conversion dépend de l'horloge de l'ADC. |
| |
| ===== Data types ===== | ===== Types de données ===== |
| |
| * **//adc_reference//** \\ ADC reference voltage enumeration data type. Options: | * **//adc_reference//** \\ Type de donnée d'énumération de la tension de référence de l'ADC. Options: |
| * //ADC_REF_AREF// - Reference voltage from the AREF pin. | * //ADC_REF_AREF// - Tension de référence de la broche AREF. |
| * //ADC_REF_AVCC// - Reference voltage from the AVCC pin. | * //ADC_REF_AVCC// - Tension de référence de la broche AVCC. |
| * //ADC_REF_2V56// - Internal 2,56 V reference voltage. | * //ADC_REF_2V56// - Tension de référence interne de 2,56 V. |
| |
| * **//adc_prescale//** \\ ADC clock prescaler enumration data type. It determines the division factor of system clock. Options: | * **//adc_prescale//** \\ Type de donnée d'énumération du diviseur de fréquence de l'horloge de l'ADC. Il détermine le facteur de division du système d'horloge. Options: |
| * //ADC_PRESCALE_2// - Division factor 2. | * //ADC_PRESCALE_2// - Facteur de division par 2. |
| * //ADC_PRESCALE_4// - Division factor 4. | * //ADC_PRESCALE_4// - Facteur de division par 4. |
| * //ADC_PRESCALE_8// - Division factor 8. | * //ADC_PRESCALE_8// - Facteur de division par 8. |
| * //ADC_PRESCALE_16// - Division factor 16. | * //ADC_PRESCALE_16// - Facteur de division par 16. |
| * //ADC_PRESCALE_32// - Division factor 32. | * //ADC_PRESCALE_32// - Facteur de division par 32. |
| * //ADC_PRESCALE_64// - Division factor 64. | * //ADC_PRESCALE_64// - Facteur de division par 64. |
| * //ADC_PRESCALE_128// - Division factor 128. | * //ADC_PRESCALE_128// - Facteur de division par 128. |
| |
| ===== Functions ===== | ===== Fonctions ===== |
| |
| * **//void adc_init(adc_reference reference, adc_prescale prescale)//** \\ | * **//void adc_init(adc_reference reference, adc_prescale prescale)//** \\ |
| Initializes ADC. Parameters: | Initialisation de l'ADC. Arguments: |
| * //reference// - Reference voltage selection. | * //reference// - Sélection de la tension de référence. |
| * //prescale// - Clock prescaler selection. | * //prescale// - Sélection du diviseur de l'horloge. |
| |
| * **//unsigned short adc_get_value(unsigned char channel)//** \\ | * **//unsigned short adc_get_value(unsigned char channel)//** \\ |
| Converts specified ADC channel analog value to digital. Function is blocking. Parameter: | Convertit la valeur analogique de la voie en argument en une valeur numérique. La fonction est bloquée. Arguments: |
| * //channel// - ADC channel number (0 to 7). | * //channel// - Numéro de la voie ADC (de 0 à 7). |
| * Return 10-bit digital value. | * Retourne la valeur numérique sur 10 bits. |
| |
| * **//unsigned short adc_get_average_value(unsigned char channel, unsigned char num_samples)//** \\ | * **//unsigned short adc_get_average_value(unsigned char channel, unsigned char num_samples)//** \\ |
| Converts specified ADC channel analog value to digital desired number of times and calculates the average. Function is blockin. Parameters: | Convertit la valeur analogique de la voie en argument en une valeur numérique en limitant le nombre d'itérations et calcule la précision. La fonction est bloquée. Arguments: |
| * //channel// - ADC channel number (0 to 7). | * //channel// - Numéro de la voie ADC (de 0 à 7). |
| * //num_samples// - Number of samples for calculation (1 to 64). | * //num_samples// - Nombre d'itérations (de 1 à 64). |
| * Return 10-bit digital value. | * Retourne la valeur numérique sur 10 bits. |
| |
| ===== Example ===== | ===== Exemple ===== |
| |
| For exampl,e ADC is initialized and two analog channel values are converted to digital. Value of channel 0 is assigned to variable //x// and averaged value of channel 1 to variable //y//. | Dans l'exemple suivant, l'ADC est initialisé et deux voies analogiques sont converties en numérique. La valeur de la voir 0 est assignée à la variable //x// et la précision de la valeur de la voie 1 à la variable //y//. |
| |
| <code c> | <code c> |