Mikrodenetleyicinizin birçok piminin farklı işlevleri vardır. 'Normal' işlevi GPIO, Genel Amaçlı Giriş / Çıkış anlamına gelir . Bu durumda, ilgili pinlere yazarak ve ilgili kayıtlardan okuyarak bu pinleri doğrudan kullanabilirsiniz.
'Alternatif' işlevler, I 2 C, SPI, USART, CCP, PWM, Saat, ADC, vb. İçeren diğer işlevlere atıfta bulunur ... Alternatif bir işlevdeyken pimleri nasıl kontrol ettiğiniz çevre birimine bağlıdır, ancak genellikle özel fonksiyon kayıtlarına (SFR) yazma ve okuma; periferik gerisini halleder.
RESET'ten sonra hangi işlev standarttır ( her zaman GPIO değildir !) Ve bunu ilgili veri sayfasında bulabilirsiniz. Çoğu zaman, anında kullanmak istediğiniz işlevi seçebilirsiniz, böylece çevre birimleri arasında geçiş yapabilirsiniz.
Birkaç çevre birimi için bir pim kullanarak, çok fazla özelliğe sahip mikro denetleyiciler yapabilirsiniz. Bununla birlikte, çoğu zaman bu pimdeki çevre biriminin her zaman olmasını istediğinizden (ve işlevleri anında değiştirmek istemediğinizden), tüm çevre birimlerini bir programda kullanamazsınız veya en azından aynı anda kullanamazsınız. saati. Öte yandan, buna gerçekten de sık sık ihtiyaç duyulmaz.
Connor'un işaret ettiği gibi , 'alternatif işlev', sadece biraz farklı bir bağlamda başka bir şeye de işaret edebilir: burada bir pime hangi işlevi koyduğunuzla ilgili değil, bir işlev için hangi pimi kullandığınızla ilgili. Buna Periferik Pim Seçimi denir ve temel olarak çevre biriminizin hangi pimi kullanacağınızı seçebileceğiniz anlamına gelir. Örneğin, RA1 ve RA2 üzerinden veya RB1 ve RB2 üzerinden RS232 yapabilirsiniz.
Daha ayrıntılı bir açıklama için Connor'ın cevabına bakın (ve bunun için oy verin).