Broches

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.

Types de données

  • pin
    Type de donnée qui contient les adresses de registre ainsi que le bit mask. Afin d'avoir un programme le plus efficace possible, les variables de type pin doivent rester constantes et doivent être initialisées en début de programme. L'initialisation peut être réalisée par la macro fonction PIN, dont le premier argument correspond à la lettre du port (A, B, C… en lettres capitales) puis le second argument est l'index de la broche (de 0 à 7). Il n'existe que les ports et broches qui peuvent être utilisés.

Fonctions

  • void pin_setup_output(pin pin)

Configure la broche en tant que sortie. Arguments:

  • pin - Pin variable.
  • void pin_setup_input(pin pin)

Configure la broche en tant qu'entrée sans résistance pull-up. Arguments:

  • pin - Pin variable.
  • void pin_setup_input_with_pullup(pin pin)

Configure la broche en tant qu'entrée avec une résistance pull-up. Arguments:

  • pin - Pin variable.
  • void pin_set(pin pin)

Configure la broche en position haute. Arguments:

  • pin - Pin variable.
  • void pin_clear(pin pin)

Configure la broche en position basse. Arguments:

  • pin - Pin variable.
  • void pin_toggle(pin pin)

Inverse l'état de la broche. Arguments:

  • pin - Pin variable.
  • void pin_set_to(pin pin, bool value)

Configure la sortie de la broche à l'état voulu. Arguments:

  • pin - Pin variable.
  • value - Valeur booléenne de l'état voulu.
  • bool pin_get_value(pin pin)

Récupère la valeur de la broche. Arguments:

  • pin - Pin variable.
  • Retourne la variable booléenne true lorsque la broche est haute puis false en position basse.
  • bool pin_get_debounced_value(pin pin)

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:

  • pin - Pin variable.
  • Retourne la valeur de la broche - true lorsque la broche est haute puis false en position basse ou indéterminée.

Exemple

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);
	}
}
fr/software/homelab/library/pin.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0