La librairie concernant les broches fourni une méthode facile d'utilisation des broches d'entrée/sortie numériques AVR. L'utilisateur peut créer une broche liée à une variable afin de réaliser l'ensemble des opérations avec cette variable. Grâce à cette méthode, il n'est pas nécessaire de traiter les noms de registre ainsi que que les indexes de bits tel qu'on devrait le faire en utilisant une méthode de programmation en accédant directemant au registre. Les ports des broches ne doivent donc être spécifiés qu'une seule fois et sont donc très faciles à implémenter.
Configure la broche en tant que sortie. Arguments:
Configure la broche en tant qu'entrée sans résistance pull-up. Arguments:
Configure la broche en tant qu'entrée avec une résistance pull-up. Arguments:
Configure la broche en position haute. Arguments:
Configure la broche en position basse. Arguments:
Inverse l'état de la broche. Arguments:
Configure la sortie de la broche à l'état voulu. Arguments:
Récupère la valeur de la broche. Arguments:
Récupère la valeur de la broche en utilisant le filtre antirebond de l'interrupteur. Le filtrage prend 8ms au plus rapide et peut durer jusqu'à 100ms, tout dépend de la fin du rebond. Si le rebond ne s'arrête pas la fonction retourne false. La fonction utilise un délai logiciel. Arguments:
Exemple de récupération et de configuration de la valeur d'une broche. La broche PC0 est inversée et reliée à la broche PC3.
#include <homelab/pin.h> pin output_pin = PIN(C, 3); pin input_pin = PIN(C, 0); int main(void) { bool value; // Configuring pin as an output pin pin_setup_output(output_pin); // Configuring pin as an input pin with pull-up pin_setup_input_with_pullup(input_pin); // Endless loop while (true) { // Getting an input pin value value = pin_get_value(input_pin); // Setting an output pin value pin_set_to(output_pin, !value); } }