Driver matériel pour la lecture des boutons via registres à décalage 74HC165. Plus de détails...
Macros | |
#define | SR_LOAD_LINE PAL_LINE(GPIOB, 0) |
Ligne LOAD des registres 74HC165 (Latch des entrées). | |
#define | SR_CLK_LINE PAL_LINE(GPIOB, 1) |
Ligne CLOCK pour décalage série. | |
#define | SR_DATA_LINE PAL_LINE(GPIOG, 11) |
Ligne DATA (sortie série des registres). | |
Fonctions | |
void | drv_buttons_start (void) |
Initialise le driver boutons et démarre le thread de scan. | |
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) |
Récupère un événement de bouton depuis la mailbox. | |
Driver matériel pour la lecture des boutons via registres à décalage 74HC165.
Ce module gère la capture, le filtrage et la détection d’événements des boutons physiques de la surface Brick.
Les 74HC165 sont lus en série à l’aide de lignes :
Le driver :
#define SR_CLK_LINE PAL_LINE(GPIOB, 1) |
Ligne CLOCK pour décalage série.
#define SR_DATA_LINE PAL_LINE(GPIOG, 11) |
Ligne DATA (sortie série des registres).
#define SR_LOAD_LINE PAL_LINE(GPIOB, 0) |
Ligne LOAD des registres 74HC165 (Latch des entrées).
bool drv_button_is_pressed | ( | int | id | ) |
Vérifie l’état courant d’un bouton.
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 | ||
) |
Récupère un événement de bouton depuis la mailbox.
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 boutons et démarre le thread de scan.
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.