Ce module permet de gérer le convertisseur intégré au MCU.
Type de filtrage de la mesure.
Valeurs énumérées |
---|
eAdcRaw |
Mesure directe de l'ADC.
|
eAdcAverage |
Mesure avec moyennage.
|
eAdcMin |
Mesure valeur maximale.
|
eAdcMax |
Mesure valeur minimale.
|
Définition à la ligne 64 du fichier adc.h.
eAdcFilter
Type de filtrage de la mesure.
Mesure directe de l'ADC.
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.
Valeurs énumérées |
---|
eAdcExternal |
Broche AREF.
|
eAdcVcc |
Tension AVCC avec un condensateur sur AREF.
|
eAdcInternal |
Référence interne (sur tous les MCU AVR8 disposant d'un ADC)
|
eAdcInternal2 |
Référence interne supplémentaire (REFS = 10, seuleument sur certains MCU)
|
Définition à la ligne 54 du fichier adc.h.
eAdcRef
Tension de référence.
Référence interne supplémentaire (REFS = 10, seuleument sur certains MCU)
Référence interne (sur tous les MCU AVR8 disposant d'un ADC)
Tension AVCC avec un condensateur sur AREF.
uint16_t usAdcRead |
( |
uint8_t |
ucChannel | ) |
|
Lecture de l'ADC.
- Paramètres
-
ucChannel | Numéro de la voie du multiplexeur ADC |
- Renvoie
- Valeur mesurée sur 10 bits
static uint16_t usAdcReadAverage |
( |
uint8_t |
ucChannel, |
|
|
uint8_t |
ucTerms |
|
) |
| |
|
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.
- Paramètres
-
ucChannel | Numéro de la voie du multiplexeur ADC |
ucTerms | Nombre de termes de la moyenne |
- Renvoie
- Valeur moyennée sur 10 bits sur ucTerms mesures
- Exemples:
- adc/demo_adc.c, et sensor/ntc/demo_sensor_ntc.c.
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.
- Paramètres
-
ucChannel | Numéro de la voie du multiplexeur ADC |
ucTerms | Nombre de termes pour le filtrage |
eFilter | Type de filtrage |
- Renvoie
- Valeur filtrée sur 10 bits sur ucTerms mesures
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.
- Exemples:
- idwarf/terminal/sensor/terminal_sensor.c.
static void vAdcSetChannel |
( |
uint8_t |
ucChan | ) |
|
|
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
- Paramètres
-
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.
- Exemples:
- sensor/mq135/demo/demo_sensor_mq135.c.
static void vAdcSetRef |
( |
uint8_t |
ucRef | ) |
|
|
inlinestatic |
Modifie la tension de référence.
- Paramètres
-
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. |
- Exemples:
- adc/demo_adc.c, sensor/hih4000/demo_sensor_hih4000.c, sensor/lmt87/demo_sensor_lmt87.c, sensor/mpx/demo_sensor_mpx.c, sensor/mq135/demo/demo_sensor_mq135.c, sensor/ntc/demo_sensor_ntc.c, sensor/pot/demo_sensor_pot.c, et sensor/rtd/demo_sensor_rtd.c.