16f877a ayarlar...

Başlatan . Kağan, 12 Ocak 2015, 13:41:54

. Kağan

16f877a kullanacağım ayarlarını yaptım fakat sormam gereken var.

Benim yaptıklarım şu şekilde (tüm adc ler giriş ve diğer tüm kanallar çıkış.)
@ __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _CP_OFF

 
'**************** ADC chanel setting  ************************
DEFINE ADC_BITS 10 ' ADCIN    çözünürlük  (Bits)
DEFINE ADC_CLOCK 1 ' ADC  clock kaynağı  (Fosc/8)
DEFINE ADC_SAMPLEUS 3 ' ADC  örnekleme zamanı (uSec)
DEFINE OSC 4

CMCON=7
ADCON0 = %01 111 101
ADCON1 = %1 01 00 000
TRISA = %00101111  ' A0,A1,A2,A3,A5 portları giriş,  diğerleri çıkış
TRISB = 0          ' B portları Hepsi cıkış
TRISC = 0          ' C portları Hepsi cıkış
TRISD = 0          ' D portları Hepsi cıkış
TRISE = %00000111  ' E0,E1,E2 portları giriş, diğerleri çıkış
PORTA = 0           
PORTB = 0
PORTC = 0
PORTD = 0
PORTE = 0


Burada;
ADCON0 = %01 111 101
ADCON1 = %1 01 00 000     kısmında tereddüte düştüm. Özellikle ADCON0 'ın 3-5. bitlerinde.  Burada pdf de
bit 5-3 CHS2:CHS0: Analog Channel Select bits
000 = Channel 0 (AN0)
001 = Channel 1 (AN1)
010 = Channel 2 (AN2)
011 = Channel 3 (AN3)
100 = Channel 4 (AN4)
101 = Channel 5 (AN5)
110 = Channel 6 (AN6)
111 = Channel 7 (AN7)

analog seçim bitleri. Ben tüm analog kanalları açmak istediğimde 000 mı yapmalıyım. ???

Burak

Hayır ,

Bunu seçsenizde seçmesenizde deşarj kondansatörü sizin program döngünüzdeki herhangi bir ADCIN , KANAL yönergesiyle ilgili pine program aracılığı ile otomatik olarak bağlanacaktır . Yani istediğinizi seçin . Analog kanal seçim ifadesi ADCIN komutu ile otomatik yapılır .
Ω Gens Una Sumus Ω

ete

Data sheet 112 ci sayfada Adcon1 registerine ait ta loda 0-3 nolu bitlere %0000 verilince bütün girişlerinin adc için analog olduğu gösterilmiş durumda. Yapılacak iş bu bitlere sıfır değerini vermekten ibaret.

Ete

Burak

Hocam kafa karıştırmaması açısından , hem sizin ifade ettiklerinizi hemde benim bahsettiğim şeyleri bir toparlayalım isterseniz , müsaadeniz olursa :)

Hangi pinin analog olarak seçileceği (ADCON1 bit3-0) ile deşarj kondansatörünün hangi pine bağlanacağının seçimi (adcon0 bit5-3) bit ayarlarının birbirinden farklı şeyler olduğunu ifade edelim öncelikle ...

Siz öncelikle hangi kanalları analog dijital çevrim için kullanacağınızın seçimini ADCON1 bit 3-0 kayıtçısından hallediyorsunuz . ADCON0 bit5-3 ise analog dijital çevrimi assembly dilinde yapan yada ADC komut kümesine sahip olmayan bir derleyicide manuel olarak çevrimin yapılacağı kanalı el ile seçmeye yarayan bir kayıtçıdır ... Yalnız bu seçimden kastımız , ADC çevrimin başlamasından önce çevrimin yapılacağı kanala bir deşarj kondansatörü bağlamaktır . Bildiğiniz gibi , bir kondansatörün bu kanala bağlanıp , dolma boşalma süresinin hesabıyla elde edilen süreden yola çıkarak bir adc ölçümü yapıyoruz .

Hatta biraz daha detaya inecek olursak , adc pinine bağlanacak olan pot'un empedansının 10K'dan büyük olmaması gerekliliği microchip midrange familyasındaki picler için bir standarttır . Bu standart  pindeki eşdeğer empedans büyüdükçe boşalma ve dolma sürelerindeki artıştan mütevellit kararlılık kaybına uğramaları gibi sebeplerden dolayıdır .

Umarım ayrımına varılmış olunur bu bilgilerle ... Çünkü sorduğunuz bu soru birçok insanın görmezden geldiği bir kayıtçının ayarlarıyla ilgili . . Herşeyi Picbasic hallediyor diye düşünmemek lazım .. PicBasic neleri bizim için kolaylaştırıyor neleri kolaylaştırmıyor diye düşünmek lazım aksine ...

Burak .
Ω Gens Una Sumus Ω

. Kağan

Bu durumda ADCON0 ile ilgili bir ayar yapmasakta oluyor. Doğrumu?

Burak

Alıntı yapılan: kaganayanoglu - 12 Ocak 2015, 16:10:02
Bu durumda ADCON0 ile ilgili bir ayar yapmasakta oluyor. Doğrumu?

Evet sadece adcon0 bit 5-3 için bir ayar yapmana gerek yok . Diğer bitler ;

-A/D Conversion Clock Select bits
-GO/DONE
-ADON

bitlerini gerekli şekilde yine kendine göre ayarlaman gerek .
Ω Gens Una Sumus Ω

Powered by EzPortal