AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Ce module permet de gérer le convertisseur intégré au MCU.
Fonctions | |
uint8_t | ucAdcGetDiv (void) |
Renvoie le facteur de division de l'horloge de l'ADC. | |
uint16_t | usAdcRead (uint8_t ucChannel) |
Lecture de l'ADC. Plus de détails... | |
static uint16_t | usAdcReadAverage (uint8_t ucChannel, uint8_t ucTerms) |
Lecture de l'ADC avec moyennage. Plus de détails... | |
uint16_t | usAdcReadFilter (uint8_t ucChannel, uint8_t ucTerms, eAdcFilter eFilter) |
Lecture de l'ADC avec filtrage. Plus de détails... | |
void | vAdcDisable (void) |
Dévalide l'ADC. Plus de détails... | |
void | vAdcEnable (void) |
Valide l'ADC. Plus de détails... | |
void | vAdcInit (void) |
Initialise et valide l'ADC pour l'utilisation. Plus de détails... | |
static void | vAdcSetChannel (uint8_t ucChan) |
Modifie la voie du multiplexeur. Plus de détails... | |
void | vAdcSetDiv (uint8_t ucDiv) |
Modifie le facteur de division de l'horloge de l'ADC. Plus de détails... | |
static void | vAdcSetRef (uint8_t ucRef) |
Modifie la tension de référence. Plus de détails... | |
Énumérations | |
enum | eAdcFilter { eAdcRaw = 0, eAdcAverage = 1, eAdcMin = 2, eAdcMax = 4 } |
Type de filtrage de la mesure. Plus de détails... | |
enum | eAdcRef { eAdcExternal = 0, eAdcVcc = 1, eAdcInternal = 3, eAdcInternal2 = 2 } |
Tension de référence. Plus de détails... | |
enum eAdcFilter |
enum eAdcRef |
Tension de référence.
Ces valeurs correspondent aux bits REFS0 et REFS1 alignés à droite sur la plupart des modèles, mais sur certains modèles les valeurs sont spécifiques... cf la paragraphe ADC du datasheet.
Définition à la ligne 54 du fichier adc.h.
uint16_t usAdcRead | ( | uint8_t | ucChannel | ) |
Lecture de l'ADC.
ucChannel | Numéro de la voie du multiplexeur ADC |
|
inlinestatic |
Lecture de l'ADC avec moyennage.
Effectue ucTerms mesures à 100 µs d'intervalle et en calcul la moyenne. La valeur de l'écart de temps entre deux mesures peut être modifié en définissant la macro ADC_FILTER_DELAYUS dans le fichier avrio-board-adc.h à une valeur en µs. La somme est effectuée sur 32 bits.
ucChannel | Numéro de la voie du multiplexeur ADC |
ucTerms | Nombre de termes de la moyenne |
uint16_t usAdcReadFilter | ( | uint8_t | ucChannel, |
uint8_t | ucTerms, | ||
eAdcFilter | eFilter | ||
) |
Lecture de l'ADC avec filtrage.
Effectue ucTerms mesures à 100 µs d'intervalle et effectue un filtrage. La valeur de l'écart de temps entre deux mesures peut être modifié en définissant la macro ADC_FILTER_DELAYUS dans le fichier avrio-board-adc.h à une valeur en µs. La somme est effectuée sur 32 bits.
ucChannel | Numéro de la voie du multiplexeur ADC |
ucTerms | Nombre de termes pour le filtrage |
eFilter | Type de filtrage |
void vAdcDisable | ( | void | ) |
Dévalide l'ADC.
Si le MCU dispose d'un registre PRR, le bit PRADC est validé pour permettre d'économiser sur la consommation de courant en cas d'endormissement du MCU.
void vAdcEnable | ( | void | ) |
Valide l'ADC.
Si le MCU dispose d'un registre PRR, le bit PRADC est dévalidé pour permettre le fonctionnement de l'ADC.
void vAdcInit | ( | void | ) |
Initialise et valide l'ADC pour l'utilisation.
Les constantes d'initialisation dans avrio-board-adc.h sont les suivantes :
|
inlinestatic |
Modifie la voie du multiplexeur.
Cette fonction ne devrait pas être appellée par l'utilisateur mais uniquement par les fonctions de lecture.
Cette fonction est implémentée dans avrio-board-adc.h
ucChan | Numéro de la voie du multiplexeur ADC |
void vAdcSetDiv | ( | uint8_t | ucDiv | ) |
Modifie le facteur de division de l'horloge de l'ADC.
Le facteur de division se trouver dans la liste {2,4,8,16,32,64,128}. Une conversion prend 13 cycles d'horloge ADC (sauf la première 25 cycles). Par exemple, si l'horloge du MCU est de 8 Mhz avec un facteur division de 8, la conversion prendra 13 microsecondes.
|
inlinestatic |
Modifie la tension de référence.
ucRef | cette valeur correspond aux bits REFS0, REFS1... alignés à droite et dépend du modèle de MCU. Sur la plupart des modèles, les valeurs correspondent à l'énumération eAdcRef , mais sur certains modèles les valeurs sont spécifiques... cf la paragraphe ADC du datasheet. |