Bunların ne anlama geldiğini Biliyormusunuz??

Başlatan Ali Çetinkaya, 21 Şubat 2013, 17:47:35

Ali Çetinkaya

islem=(oku*5000)>>10; ve

ADCON1=0x8e;    // ANO analog giriş, diğer uçlar dijital
ADCON0=0x41;   // ADC için sadece AN0 kanalı seçili.
                           // ADC dönüşümü sonrası sayı sağa dayalı

Bu işlemler nasıl oluyor? neye göre 0x41 sadece AN0'ı temsil ediyor??

GreeN

Örneğin ADCON0=0x41;
0x41 binary karşılığı (%b0100 0001)

Kullandığın işlemcinin datasheet ' ini aç ADCON0 registerlerini incele.

Misal 16F877a kullanıyor olsaydın  ,ADCON0=0x41; satırının anlamı

                                                        01 = FOSC/8
                                                      000 = Channel 0 (AN0)
                                                       xx1 = A/D converter module is powered up

       

Terörü Lanetliyoruz.

Ali Çetinkaya

Yorumunuz için teşekkür ederim.

0x41 binary karşılığı (%b0100 0001)

ADCON0=0x41;

              01 = FOSC/8
              000 = Channel 0 (AN0)
              xx1 = A/D converter module is powered up

// Biz bu değeri ikiye bölüp te mi inceleyecegiz? 16f877a dataheetinin 127. sayfasında sizinde belirtmiş olduğunuz bilgiler bulunuyor. (0b0100 0001) den anlamamız gereken çünkü hem an0 hemde an6 "1" gösteriyor. Benimde yazmız olduğum ADC0N0=0x41=(0b0100 0001) ise fosc/8 değeri solda, kullanmak istediğimiz analoğ-dijital çevirici pininide sag taraftamı belirliyoruz?



GreeN

bit 7-6 ADCS1:ADCS0: A/D Conversion Clock Select bits
00 = FOSC/2
01 = FOSC/8
10 = FOSC/32
11 = FRC (clock derived from the internal A/D module RC oscillator)

bit 5-3 CHS2:CHS0: Analog Channel Select bits
000 = channel 0, (RA0/AN0)
001 = channel 1, (RA1/AN1)
010 = channel 2, (RA2/AN2)
011 = channel 3, (RA3/AN3)
100 = channel 4, (RA5/AN4)
101 = channel 5, (RE0/AN5)
110 = channel 6, (RE1/AN6)
111 = channel 7, (RE2/AN7)

bit 2 GO/DONE: A/D Conversion Status bit
If ADON = 1:
1 = A/D conversion in progress (setting this bit starts the A/D conversion)
0 = A/D conversion not in progress (this bit is automatically cleared by hardware when the A/D
conversion is complete)

bit 1 Unimplemented: Read as '0'

bit 0 ADON: A/D On bit
1 = A/D converter module is operating
0 = A/D converter module is shut-off and consumes no operating current

Yukarıdaki ifadelerin sizin için bir anlamı var mı?

bit0 , bit1 , bit2 , bit3 ..... bit7 . Sekiz bit olan ADCON0 registerleri .

Misal 5,4,3 nolu bitler ile  bir analog çıkış seçilir.  Yeni başladığınız bir konu sanırım biraz temel bilgiler gerekiyor.
Terörü Lanetliyoruz.

Ali Çetinkaya

Yukarıdaki yazılan ifadelerin de olsun bu sitede yayınlanan micro c konularıda olsun hepsinin benim için veya burdaki arkadaşlar için bir önemi vardır illaki. Evet yeni başladığım bir çalışma için sadece oradaki yazılanları şuan anlayamamış olmamdan kaynaklanıyor. okadar işinizin içerisinde emeğinize ve verdiğiniz cevaplar için teşekkür ederim. iyi günler.

GreeN

#5
Yanlış anladınız beni. Ben sadece tecrübeniz var mı ? Datasheet içindeki bu verileri okuyabiliyor musunuz değerlendirebiliyor musunuz anlamında size birşey ifade ediyormu dedim. Yanlış anlaşılma için özür dilerim.

(Tecrübenize göre cevaplar verebilmek için.)

mesaj birleştirme:: 22 Şubat 2013, 11:22:55

http://www.tugayarslan.com/adc-kutuphanesi-s1-0-tum-pic10-12-16-18-serisi-icin/#more-668

burada türkçe bir kaynak var. dilerseniz bi inceleyin sorularınız olursa tekrar bakalım.
Terörü Lanetliyoruz.

Ali Çetinkaya

Şuana kadar ilk defa önemli bir çalışma yapıyorum. yakında olacak olan robot yarışmalarına hazırlanıyorum. micro c ile yeni tanıştım sayılır. bir kaç ay kadar oldu. İşin doğrusu datasheet okuyamıyorum sizinde bahsettiğiniz gibi tecrübem yok. İlk pıc ccs c ile tanıştım. anlayamadım bir türlü zaten yeterli düzeyde programlama bilgimde yoktu. sadece 3 senedir kendi çapımda birşeyler yapmaya çalışan üniversite 3. sınıf elektronik öğretmenliği öğrencisiyim. Bende yanlış anlaşılma için özür dilerim. Datasheet okumayı değerlendirmeyi bende çok istiyorum. ama nasıl olacak diye oradaki yazılan ifadeleri nasıl kullanacağımı bilmediğimden dolayı takılıp duruyorum..

GreeN

Vaktiniz varsa bence türkçe kaynaklara yönelin.
Burada bir temel oluşturmaya çalışın.
Proteus ile denemeler yapın.
biraz araştırma yapın arama motorlarıyla.

ccs c için türkçe kaynaklar. ccs c biraz daha kolay , datasheet okumadan birşeyler yapabilirsin.

bu tip  siteler bulabilirsin. Ayrıca türkçe kitapta mevcut.
http://www.teknobakis.com/ccs-c-ile-pic-programlama-pic-timer-modulleri-ve-kullanimi-1

Çalışmadan olmuyor. Yeter ki gayret gösterin.
Terörü Lanetliyoruz.

Mr.Java

Alıntı yapılan: Ali Çetinkaya - 21 Şubat 2013, 17:47:35
islem=(oku*5000)>>10; ve

ADCON1=0x8e;    // ANO analog giriş, diğer uçlar dijital
ADCON0=0x41;   // ADC için sadece AN0 kanalı seçili.
                           // ADC dönüşümü sonrası sayı sağa dayalı

Bu işlemler nasıl oluyor? neye göre 0x41 sadece AN0'ı temsil ediyor??

Şöyle anlatayım.Kullandığın interrupt olayındada aynı şekilde.Örneğin GIE ve PIE bitlerini set etmek istediğinizde binary kullanım yerine hex şeklinde yazabiliyorsunuz.Atıyorum OPTİON reg incelediniz ve işinize sadece atıyorum 8bitlik ya 2'ye bölelim.sol 4'den sadece sonuncu sağ 4 bitten hepsi yarıyor.Yani 0b00011111.OPTION 0x1F yazdığınızda option reglerini tek tek yazmak yerine bu şekilde yapabiliyorsunuz.

Ali Çetinkaya

Yorumlarınız için teşekkür ederim. Datasheet okumaya başladım yavaş yavaş Bu şekilde daha iyi olacak çalışmalarım.