Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

16f877 ADC Pinleri

Başlatan creemstorge, 27 Ekim 2008, 00:22:06

creemstorge

Merhaba arkadaşlar. PIC 16f877 de PORT-A nın ve PORT-E 'nin analog giriş olarak kullanımıyla ilgili bir problemim var. Yaptığım devre üzerinde seven segment displayi yanlışlıkla port-a nın tamamına ve port-e nin de 1. ve 2. bitine bağladım. Bu pinlerden istediğimi dijital , istediğimi de analog olarak ayarlayabilir miyim? Mesela Porta.1=analog porte.2 =dijital gibi, bu kavramlar sadece misaldir. Yaptığım devreyi sökmek istemiyorum. Çok uraştım. Ayrıca Proton PLUS kullanıyorum.  Önerilerinizi bekliyorum.

Tagli

Malesef ayrı ayrı ayarlaman mümkün değil. Yapabileceklerin ADCON1'den ayarlanabileceklerle sınırlı. Tabi bu ayarları program içinde istediğin zaman değiştirebilirsin. Proton+ bilmiyorum ama derleyicinin donanımsal olan bu sınırlamayı aşabileceğini sanmıyorum.

Gökçe Tağlıoğlu

Maxim

tamda aynı tabloyu ben koyacaktım ,

adcon1 registeri ile ayarlanır ama listenin dışına çıkamazsın ,
bu listedeki seçenekler sana uyuyorsa ne ala .

creemstorge

Öncelikle teşekkür ederim. ADCOn1 registerinin sorun yaratacağını düşünmüştüm ama tablonun dışında bişey yapılıp yapılmayacağı konusunda bir bilgim yoktu. Şimdi öğrenmiş oldum. Teşekkür ederim. Az evel devrenin yanlış yaptığım kısmını değiştirip dijital portlara göre yeniden düzenledim.

swat

kardeşler nasıl mümkün olmaz... tabiki mümkün ama iyibir cambazlık yapması gerekir. :)
misal olarak :
portları ayrı ayrı yapamayacağı için önce geşici olarak  hepisini analog yapıp istediği portu okusun. işi bittikten hemen sonra tekrar normal hale getirsin. yani kısaca sürekli adcon0 ve adcon1 değerlerini oynaman lazım.
birde şu varki, portların hepisini çıkış yapabilin ancak porta,4 lojik 1 çıkarmaz. bunuda pull up direnci ile halletmelisin.

Tagli

@swat;
Alıntı yapılan: "Tagli"Yapabileceklerin ADCON1'den ayarlanabileceklerle sınırlı. Tabi bu ayarları program içinde istediğin zaman değiştirebilirsin.
Bunu demiştim zaten. Yine de bence cambazlıkladan mümkün olduğunca sakınmak lazım :)
Gökçe Tağlıoğlu

swat

Alıntı yapılan: "Tagli"@swat;
Alıntı yapılan: "Tagli"Yapabileceklerin ADCON1'den ayarlanabileceklerle sınırlı. Tabi bu ayarları program içinde istediğin zaman değiştirebilirsin.
Bunu demiştim zaten. Yine de bence cambazlıkladan mümkün olduğunca sakınmak lazım :)

kardeş, tamam demişin ama ben birazdaha ayrıntılı yazdım.

valla kardeş, bu cambazlık için proton'a + asm takviyesi yapması lazım. :lol:
eskiden bir devre görmüştüm, inanırmısın adam 16f84 ün B portlarına hem 2 adet 7 seg. displey sürmüş hemde 8 bit paralel ADC çıkışlarını okumuş ve displeylerin her iki katotunu tek pin ile kontrol etmiş 8O  gerikalan pinlerede buton bağlamışlar. ne cambazlık yapmış ama :lol:

creemstorge

Programcılığımı biraz daha geliştirmem gerekecek sanırım. Bir de 16f877 de comparator var mı? Bilginiz var mı bu konuda? Ben var diye biliyorum ama protonda komparatörleri iptal etmek istediğimde kullandığım komutu kabul etmiyor derleyici

Tagli

16F877'de yok, 16F877A'da var. Bu ikisi arasındaki farkları tam olarak bilmiyorum ama aklıma gelen bir diğer fark da program hafızasına yazma konusunda. Datasheet'teki bazı bitlerin de isimleri farklı, bu önemli değil aslında ama MPLAB ile ASM kullanırken sorun çıkarabilir.
Gökçe Tağlıoğlu