Analog giriş okuma sorunu 16F877

Başlatan Chan86, 18 Mart 2009, 20:51:36

Chan86

İyi akşamlar arkadaşlar

ADCON0=0x41;  // A/D aktif hale geldi

ADCON0=0x45;  // Dönüşüm Başladı

while((ADCONO&4)!=0);  // dönüşümün bitmesini kaydet

A/D dönüşümü 16F877 için her zaman ADCON0=0x45; komutu ile mi başlar? ve her zaman
while((ADCONO&4)!=0);  komutu ile mi dönüşümün bitmesi beklenir acama?

Erol YILMAZ

ADCON0 = (channel << 3) + 0xC1; // enable ADC, RC osc.
GODONE = 1;
while(GODONE);
adcTotal +=(ADRESH<<8) + (ADRESL);


Bu kodu datasheetin ADC bölümü ile birlikte
incelersen tam olarak ne yapıldığını anlayabilirsin.

"channel"yerine istediğin ADC kanalını yazabilirsin.

Chan86

İnceledim ama tam olarak ne denilmek istiyor anlayamadım birde üstünde Read the ADC on a 16C71. yazıyor 16c71 serisi içinmi bu komut geçerli acaba?

Erol YILMAZ

Bu kodu anlamanın 28 değişik yolu olmasına rağmen tercih ettiğim yöntem şudur.

1) Datasheetin ADCON0 Registeri ile ilgili olan sayfasını çıktı alırsın.
2) O registara atamış olduğum sayıyı bit bit yazarsın ve
Registarda hangi bitlere geliyormuş takip edersin.


Bu şekilde o sayılar ne demek anlamış olursun...
Kolay gelsin...

Chan86

Teşekkür ederim şimdi daha anlaşılır oldu.

Chan86

Peki negatif bir analog değer geldiğinde nasıl o veriyi elde edebilirim.Birtürlü ulaşamadım.Nasıl negatif bir değeri okuyabilirim.

arslan74

Alıntı yapılan: "Chan86"Peki negatif bir analog değer geldiğinde nasıl o veriyi elde edebilirim.Birtürlü ulaşamadım.Nasıl negatif bir değeri okuyabilirim.

PİC'in ADC'si ile negatif değer okuyamassın.

Chan86