AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
tcapture.h
1 
18 #ifndef _AVRIO_TCAPTURE_H_
19 #define _AVRIO_TCAPTURE_H_
20 #include <avrio/mutex.h>
21 #include <avr/interrupt.h>
22 
23 __BEGIN_C_DECLS
24 /* ========================================================================== */
25 
40 /* constants ================================================================ */
44 typedef enum {
48 
52 typedef enum {
62 
63 #define TCAPTURE1 0
64 #define TCAPTURE3 1
65 #define TCAPTURE4 2
66 #define TCAPTURE5 3
69 /* types ==================================================================== */
70 
71 typedef int8_t xTCaptureHandle;
72 
73 /* internal public functions ================================================ */
77 void vTCaptureInit(void);
78 
86 
93 
101 
108 
115 uint16_t usTCaptureValue (xTCaptureHandle t);
116 
124 double dTCaptureValueToTime (xTCaptureHandle t, uint16_t usValue);
125 
133 double dTCaptureValueToFreq (xTCaptureHandle t, uint16_t usValue);
134 
141 void vTCaptureSetNoiseFilter (xTCaptureHandle t, bool bEnable);
142 
150 
151 #if defined(__DOXYGEN__)
152 /*
153  * __DOXYGEN__ defined
154  * Partie documentation ne devant pas être compilée.
155  * =============================================================================
156  */
163 inline double dTCaptureTime (xTCaptureHandle t);
164 
171 inline double dTCaptureFreq (xTCaptureHandle t);
177 #else
178 /*
179  * __DOXYGEN__ not defined
180  * Partie ne devant pas être documentée.
181  * =============================================================================
182  */
183 
184 // -----------------------------------------------------------------------------
185 INLINE double
187  return dTCaptureValueToTime (t, usTCaptureValue (t));
188 }
189 
190 // -----------------------------------------------------------------------------
191 INLINE double
193  return dTCaptureValueToFreq (t, usTCaptureValue (t));
194 }
195 
196 #endif /* __DOXYGEN__ not defined */
197 
198 /* ========================================================================== */
199 __END_C_DECLS
200 #endif /* _AVRIO_TCAPTURE_H_ */
void vTCaptureSetPrescaler(xTCaptureHandle t, eTCapturePrescaler ePrescaler)
Règle la fréquence d&#39;horloge.
uint16_t usTCaptureValue(xTCaptureHandle t)
Dernière valeur mesurée entre 2 fronts.
double dTCaptureTime(xTCaptureHandle t)
Dernière durée mesurée entre 2 fronts.
void vTCaptureInit(void)
Initialise le module.
double dTCaptureValueToFreq(xTCaptureHandle t, uint16_t usValue)
Convertit un nombre de périodes d&#39;horloge en fréquence.
void vTCaptureSetNoiseFilter(xTCaptureHandle t, bool bEnable)
Valide le filtrage du bruit.
eTCapturePrescaler
Division d&#39;horloge.
Definition: tcapture.h:52
int8_t xTCaptureHandle
Désigne le numéro du timer.
Definition: tcapture.h:71
void vTCaptureWaitForComplete(xTCaptureHandle t)
Attends que la mesure se termine.
bool bTCaptureIsComplete(xTCaptureHandle t)
Teste si la mesure est terminée.
void vTCaptureStart(xTCaptureHandle t)
Démarre la mesure entre 2 fronts.
double dTCaptureValueToTime(xTCaptureHandle t, uint16_t usValue)
Convertit un nombre de périodes d&#39;horloge en durée.
eTCaptureEvent
Type d&#39;évement de déclenchement.
Definition: tcapture.h:44
double dTCaptureFreq(xTCaptureHandle t)
Dernière fréquence mesurée entre 2 fronts.
void vTCaptureSetEvent(xTCaptureHandle t, eTCaptureEvent eEvent)
Règle l&#39;événement de déclenchement.