Micro C 18f4620 Registerlar

Başlatan frederic, 18 Şubat 2014, 20:13:17

frederic

Merhabalar, mikro c kullanmıyorum normalde sadece örnek bir example kullanma ihtiyacım oldu ve bu example 16f877 için yazılmış.

18f4620' ye göre ayarladım ve aşağıdaki satırlar hata verdi, sildiğimde ise portb'nin giriş olarak tanımlı pinleri çalışmadı. Aşağıdaki satırları 18f4620 için değiştirebilirse bir arkadaş çok makbule geçer.

ANSEL = 0x0C;         
C1ON_bit = 0;           
C2ON_bit = 0;
ANSELH = 0;


LukeSkywalker

#1
Bu example 16F877'ye göre yazılmış olamaz çünkü ANSEL diye bir register yok 16f877'de.
Olsa olsa 16f887'dir.

Gerekli kod şöyle olmalı:
CMCON=7;
ADCON1=0x0D;

Tabi burada bir fark mecburiyetten oluşuyor.

16f877'de RA2 ve RA3 analog giriş olarak tanımlanıyor, diğerleri dijital.
Burada ise RA0 ve RA1 analog giriş diğerleri dijital. Sadece RA2 ve RA3 analog diğerleri dijital yapılamıyor 18F4620'de.


frederic

#2
Hocam teşekkür ederim evet dediğiniz gibi 887 doğrusu ezbere yazmışım ben. webserver örneği bu üzerinde çalıştığım, şu bu tanımlamaları yapmadığım için çıkışlar ve analog girişler çalışıyor fakat portb'de bulunan inputlar çalışmıyor. Verdiğiniz iki satırı ekleyip denerim yarın. Yalnız html kodlar ra2-ra3 olarak ayarlı durumda, ra0-ra1 olarak ayarlarsak şimdi epey uğraştıracak, 2-3 kanalları açma yolumuz hiç yokmudur acaba?

LukeSkywalker

#3
RA0,1,2,3 pinlerini analog olarak tanimlayabiliyorsunuz.  İlgili mcunun datasheetinden Adcon1 isimli registerdan gorebilirsiniz durumu.