Banyak pin mikrokontroler Anda memiliki fungsi yang berbeda. Fungsi 'normal' akan merujuk ke GPIO, Input / Output Tujuan Umum . Dalam hal ini, Anda dapat menggunakan pin ini secara langsung dengan menulis ke dan membaca dari register yang relevan.
Fungsi 'Alternate' akan merujuk ke fungsi lain, yang mungkin termasuk I 2 C, SPI, USART, CCP, PWM, Clock, ADC, dll ... Bagaimana Anda mengontrol pin ketika dalam fungsi alternatif tergantung pada perangkat, tetapi umumnya turun ke menulis ke dan membaca dari register fungsi khusus (SFR); periferal mengurus sisanya.
Fungsi mana yang menjadi standar setelah RESET tergantung ( tidak selalu GPIO!), Dan Anda dapat menemukannya di lembar data yang relevan. Sebagian besar waktu, Anda dapat memilih fungsi yang ingin Anda gunakan saat itu, sehingga Anda dapat beralih antar periferal.
Dengan menggunakan satu pin untuk beberapa periferal, Anda dapat membuat mikrokontroler dengan fitur yang sangat banyak. Namun, karena sebagian besar waktu Anda menginginkan periferal pada pin itu sepanjang waktu (dan tidak ingin berganti fungsi secara langsung), Anda tidak dapat menggunakan semua periferal dalam satu program, atau setidaknya tidak pada saat yang sama waktu. Di sisi lain, itu sebenarnya tidak terlalu sering dibutuhkan.
Seperti yang ditunjukkan Connor , 'fungsi alternatif' dapat merujuk ke hal lain juga, hanya dalam konteks yang sedikit berbeda: di sini bukan tentang fungsi apa yang Anda letakkan pada pin, tetapi tentang pin apa yang Anda gunakan untuk suatu fungsi. Ini disebut Peripheral Pin Select, dan pada dasarnya berarti Anda dapat memilih pin yang digunakan periferal Anda. Anda bisa, misalnya, melakukan RS232 melalui RA1 dan RA2 atau lebih dari RB1 dan RB2.
Lihat jawaban Connor untuk deskripsi yang lebih terperinci (dan pilih dia untuk ini).