Interface du driver de lecture des boutons via registres à décalage 74HC165. Plus de détails...
Aller au code source de ce fichier.
Structures de données | |
struct | button_event_t |
Structure décrivant un événement de bouton. Plus de détails... | |
Énumérations | |
enum | button_event_type_t { BUTTON_EVENT_PRESS = 0 , BUTTON_EVENT_RELEASE } |
Type d’événement de bouton détecté. Plus de détails... | |
Fonctions | |
void | drv_buttons_start (void) |
Initialise le driver des boutons et démarre le thread de lecture. | |
bool | drv_button_is_pressed (int id) |
Vérifie l’état courant d’un bouton. | |
bool | drv_buttons_poll (button_event_t *evt, systime_t timeout) |
Lit un événement de bouton dans la mailbox. | |
Interface du driver de lecture des boutons via registres à décalage 74HC165.
Ce module fournit l’accès haut niveau aux boutons physiques du système Brick. Il encapsule la logique de lecture série des registres 74HC165 et publie les événements de pression / relâchement sous forme asynchrone.
Fonctions principales :
polling
). enum button_event_type_t |
bool drv_button_is_pressed | ( | int | id | ) |
Vérifie l’état courant d’un bouton.
id | Identifiant du bouton à tester. |
true
si le bouton est actuellement pressé, sinon false
.id | Identifiant du bouton (0 à NUM_BUTTONS-1) |
true
si le bouton est pressé, sinon false
. bool drv_buttons_poll | ( | button_event_t * | evt, |
systime_t | timeout | ||
) |
Lit un événement de bouton dans la mailbox.
[out] | evt | Structure où stocker l’événement lu. |
[in] | timeout | Délai d’attente maximum (TIME_IMMEDIATE , TIME_INFINITE , etc.). |
true
si un événement a été lu avec succès, sinon false
(timeout).Lit un événement de bouton dans la mailbox.
[out] | evt | Structure où stocker l’événement lu. |
[in] | timeout | Délai maximum d’attente (ex. TIME_IMMEDIATE ou TIME_INFINITE ). |
true
si un événement a été lu, sinon false
(timeout). void drv_buttons_start | ( | void | ) |
Initialise le driver des boutons et démarre le thread de lecture.
Configure les lignes GPIO nécessaires et lance le thread effectuant le scan périodique (~200 Hz).
Initialise le driver des boutons et démarre le thread de lecture.
Configure les lignes GPIO, initialise la mailbox d’événements et lance le thread périodique de lecture.