Muchos pines de su microcontrolador tienen diferentes funciones. La función 'normal' se referiría a GPIO, Entrada / salida de uso general . En ese caso, puede usar estos pines directamente escribiendo y leyendo los registros correspondientes.
Las funciones 'Alternativas' se referirán a otras funciones, que pueden incluir I 2 C, SPI, USART, CCP, PWM, Reloj, ADC, etc. ¿Cómo controla los pines cuando está en una función alternativa depende del periférico, pero generalmente se reduce a escribir y leer desde registros de funciones especiales (SFR); El periférico se encarga del resto.
La función que es estándar después de un RESET depende (¡es no siempre GPIO!), y puede encontrarlo en la hoja de datos correspondiente. La mayoría de las veces, puede seleccionar la función que desea utilizar sobre la marcha, para que pueda alternar entre los periféricos.
Al usar un pin para varios periféricos, puedes hacer microcontroladores con muchas características. Sin embargo, dado que la mayoría de las veces desea que ese periférico esté en ese pin todo el tiempo (y no desea cambiar las funciones sobre la marcha) no puede usar todos los periféricos en un programa, o al menos no al mismo tiempo. hora. Por otro lado, eso no es realmente necesario de todas formas.
Como señala Connor , la 'función alternativa' puede referirse a otra cosa también, solo un poco Contexto diferente: aquí no se trata de qué función pones en un pin, sino de qué pin usas para una función. Esto se denomina selección de pin periférico, y básicamente significa que puede seleccionar qué pin está utilizando su periférico. Podría, por ejemplo, hacer RS232 sobre RA1 y RA2 o sobre RB1 y RB2.
Vea la respuesta de Connor para una descripción más detallada (y hágale votos para esto).