Viele Pins Ihres Mikrocontrollers haben unterschiedliche Funktionen. Die "normale" Funktion bezieht sich auf GPIO, General Purpose Input / Output . In diesem Fall können Sie diese Pins direkt verwenden, indem Sie in die entsprechenden Register schreiben und aus diesen lesen.
'Alternative' Funktionen beziehen sich auf andere Funktionen, die I 2 C, SPI, USART, CCP, PWM, Clock, ADC usw. umfassen können. Wie Sie die Pins in einer alternativen Funktion steuern, hängt jedoch vom Peripheriegerät ab Im Allgemeinen kommt es darauf an, in Sonderfunktionsregister (SFR) zu schreiben und aus diesen zu lesen. das Peripheriegerät kümmert sich um den Rest.
Welche Funktion nach einem RESET Standard ist, hängt davon ab (es ist nicht immer GPIO!), Und das finden Sie im entsprechenden Datenblatt. In den meisten Fällen können Sie die gewünschte Funktion direkt auswählen, um zwischen den Peripheriegeräten zu wechseln.
Indem Sie einen Pin für mehrere Peripheriegeräte verwenden, können Sie Mikrocontroller mit sehr vielen Funktionen erstellen. Da Sie jedoch die meiste Zeit dieses Peripheriegerät an diesem Pin benötigen (und die Funktionen nicht sofort umschalten möchten), können Sie nicht alle Peripheriegeräte in einem Programm oder zumindest nicht gleichzeitig verwenden Zeit. Andererseits wird das sowieso nicht oft gebraucht.
Wie Connor betont, kann sich 'alternative Funktion' in einem etwas anderen Kontext auch auf etwas anderes beziehen: Hier geht es nicht darum, welche Funktion Sie einem Pin zuordnen, sondern darum, welchen Pin Sie für eine Funktion verwenden. Dies wird als Peripheral Pin Select bezeichnet und bedeutet im Grunde, dass Sie auswählen können, welchen Pin Ihr Peripheriegerät verwendet. Sie können beispielsweise RS232 über RA1 und RA2 oder über RB1 und RB2 ausführen .
Eine ausführlichere Beschreibung finden Sie in Connors Antwort (und stimmen Sie ihm zu).