16F leri kullandığını varsayarsak.. Öncelikle analog kanalları ayarlamalısın.. 16F ler de genelde ANSEL registeri ya da ADCON1 üzerinde olur.. Hangi işlemci olduğunu söylesen daha detaylı bilgi verirdim..
Neyse adc ölçümü yapacağın ayağı analog olarak ayarladıktan sonra; bu ayarları seçmelisin;
- sonucun 2 register=8+8=16 bitlik alanda sağa mı sola mı yaslanmış olduğunu(ADFM) (ADFM=0 ise ADRESx registerleri 64 ile çarpılmış gibi(sola dayalı şekilde) sonuç verir(8 bit yeterliyse kolaylık sağlar sana).. ADFM=1 ise ADRESx registerlerinin yüksek değerlikli 6 biti 0 olur, 10 bitlik değer sağa dayalı şekilde görünür),
- ölçülecek girişin maksimum ve minimum voltaj değerlerinin pic in beslemesinde mi yoksa harici pinden mi alınacağını(bunlar referans değerleridir, verdiğin giriş üst referans değerine eşit olursa 1023, alt referans değerine eşit olursa 0 ölçüm değeri elde edilir),
- adcnin kristale göre ölçüm hızını(ya da hesap yapmak istemezsen iç RC osilatöre de ayarlayabilirsin) ve
- pic in hangi analog pininden(AN0-1-2-3-vsvs yazan pinler) ölçüm yapacağını(ADCON0,CHS bitleri) ayarlamalısın..
En son da adc modülüne enerji vereceksin(ADCON0,ADON = 1 yapacaksın)..
Bu ayarları yaptıktan sonra da ölçümü başlatmak için ADCON0,GO bitini 1 yapacaksın, 1 olduğu sürece ölçüm devam eder.. Bu bit kendiliğinden 0 olur bir süre sonra.. Bu bit 0 olduktan sonra ADRESH ve ADRESL registerleri yenilenmiş demektir ve bu registerdeki ölçüm değerlerini okuyabilirsin..