Interface du driver des encodeurs rotatifs (TIM + soft quadrature). Plus de détails...
Aller au code source de ce fichier.
Énumérations | |
enum | encoder_id_t { ENC1 = 0 , ENC2 , ENC3 , ENC4 } |
Identifiants des 4 encodeurs physiques. Plus de détails... | |
Fonctions | |
void | drv_encoders_start (void) |
Initialise le sous-système des encodeurs. | |
int16_t | drv_encoder_get (encoder_id_t id) |
Retourne la valeur brute du compteur d’un encodeur. | |
void | drv_encoder_reset (encoder_id_t id) |
Réinitialise la position et l’état d’un encodeur. | |
int16_t | drv_encoder_get_delta (encoder_id_t id) |
Calcule l’incrément depuis le dernier appel (lecture brute). | |
int16_t | drv_encoder_get_delta_accel (encoder_id_t id) |
Calcule l’incrément avec accélération dynamique (EMA + flick). | |
Interface du driver des encodeurs rotatifs (TIM + soft quadrature).
Fournit une API unifiée pour la lecture des 4 encodeurs :
ENC1
→ TIM8 matérielENC2
→ TIM4ENC3
→ Décodage quadrature logiciel (interruptions GPIO)ENC4
→ TIM2Fonctions principales :
drv_encoders_start()
. enum encoder_id_t |
int16_t drv_encoder_get | ( | encoder_id_t | id | ) |
Retourne la valeur brute du compteur d’un encodeur.
id | Identifiant de l’encodeur. |
int16_t drv_encoder_get_delta | ( | encoder_id_t | id | ) |
Calcule l’incrément depuis le dernier appel (lecture brute).
id | Identifiant de l’encodeur. |
int16_t drv_encoder_get_delta_accel | ( | encoder_id_t | id | ) |
Calcule l’incrément avec accélération dynamique (EMA + flick).
Utilise un filtre exponentiel sur la vitesse et un système d’impulsion temporaire lors des mouvements rapides pour améliorer la réactivité.
id | Identifiant de l’encodeur. |
void drv_encoder_reset | ( | encoder_id_t | id | ) |
Réinitialise la position et l’état d’un encodeur.
id | Identifiant de l’encodeur à réinitialiser. |
void drv_encoders_start | ( | void | ) |
Initialise le sous-système des encodeurs.
Configure les timers matériels et les GPIO nécessaires, ainsi que les interruptions pour l’encodeur logiciel (ENC3).