De nombreuses broches de votre microcontrôleur ont différentes fonctions. La fonction «normale» se réfère à GPIO, General Purpose Input / Output . Dans ce cas, vous pouvez utiliser ces broches directement en écrivant et en lisant dans les registres appropriés.
Les fonctions `` alternatives '' se réfèrent à d'autres fonctions, qui peuvent inclure I 2 C, SPI, USART, CCP, PWM, Clock, ADC, etc ... La façon dont vous contrôlez les broches dans une fonction alternative dépend du périphérique, mais cela se résume généralement à l'écriture et à la lecture des registres de fonctions spéciales (SFR); le périphérique s'occupe du reste.
La fonction standard après un RESET dépend (ce n'est pas toujours GPIO!), Et vous pouvez le trouver dans la fiche technique correspondante. La plupart du temps, vous pouvez sélectionner la fonction que vous souhaitez utiliser à la volée, afin de pouvoir basculer entre les périphériques.
En utilisant une broche pour plusieurs périphériques, vous pouvez créer des microcontrôleurs avec beaucoup de fonctionnalités. Cependant, comme vous voulez la plupart du temps ce périphérique sur cette broche tout le temps (et que vous ne voulez pas changer de fonction à la volée), vous ne pouvez pas utiliser tous les périphériques dans un programme, ou du moins pas en même temps. temps. D'un autre côté, ce n'est pas vraiment nécessaire de toute façon.
Comme le souligne Connor , une `` fonction alternative '' peut également faire référence à autre chose, dans un contexte légèrement différent: ici, il ne s'agit pas de la fonction que vous mettez sur une broche, mais de la broche que vous utilisez pour une fonction. Cela s'appelle Peripheral Pin Select et signifie essentiellement que vous pouvez sélectionner la broche utilisée par votre périphérique. Vous pouvez, par exemple, faire RS232 sur RA1 et RA2 ou sur RB1 et RB2.
Voir la réponse de Connor pour une description plus détaillée (et voter pour lui).