Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier drv_buttons.h

Interface du driver de lecture des boutons via registres à décalage 74HC165. Plus de détails...

#include "ch.h"
#include "brick_config.h"
#include "hal.h"

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.
 

Description détaillée

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 :

  • Initialisation du driver et démarrage du thread de scan.
  • Lecture instantanée de l’état d’un bouton.
  • Récupération d’événements via mailbox (polling).

Documentation du type de l'énumération

◆ button_event_type_t

Type d’événement de bouton détecté.

Valeurs énumérées
BUTTON_EVENT_PRESS 

Pression détectée (front montant).

BUTTON_EVENT_RELEASE 

Relâchement détecté (front descendant).

Documentation des fonctions

◆ drv_button_is_pressed()

bool drv_button_is_pressed ( int  id)

Vérifie l’état courant d’un bouton.

Paramètres
idIdentifiant du bouton à tester.
Renvoie
true si le bouton est actuellement pressé, sinon false.
Paramètres
idIdentifiant du bouton (0 à NUM_BUTTONS-1)
Renvoie
true si le bouton est pressé, sinon false.

◆ drv_buttons_poll()

bool drv_buttons_poll ( button_event_t evt,
systime_t  timeout 
)

Lit un événement de bouton dans la mailbox.

Paramètres
[out]evtStructure où stocker l’événement lu.
[in]timeoutDélai d’attente maximum (TIME_IMMEDIATE, TIME_INFINITE, etc.).
Renvoie
true si un événement a été lu avec succès, sinon false (timeout).

Lit un événement de bouton dans la mailbox.

Paramètres
[out]evtStructure où stocker l’événement lu.
[in]timeoutDélai maximum d’attente (ex. TIME_IMMEDIATE ou TIME_INFINITE).
Renvoie
true si un événement a été lu, sinon false (timeout).

◆ drv_buttons_start()

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.