Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

output_b (deger); kodu hakkinda

Başlatan Digimensch, 30 Aralık 2005, 01:03:44

Digimensch

output_b (15);

Bu  yukardaki satirin tam anlami nedir??
PortB'nin Pinlerini  15 yani 00001111 halinemi getiriyor??
Eger öyleyse bu yukardaki satir su asagidaki satirin yaptigi görevin aynisinimi yapiyor??
set_tris_b(0b00001111);


Bilgi verirseniz sevinirim.

CaFFeiNe

set_tris_b(0b00001111);

ile B portunun üst 4 bitini çıkış alt 4 bitini giriş yapıyorsun yani bu komut ile hangi pin çıkış hangi pin giriş olacak onu ayarlıyorsun

Digimensch

output_b (15);
Ben bu satirin islevini sormustum !!
Bu Satir PortB'ye 15 Degerini gönderiyor buda PortB'ye ait Pinleri yine low ve high yapiyor anlaminami geliyor??

HEXF2

bu kod Portb'yi ilk önce çıkış yapar daha sonra 15 değerini yerleştirir.Yani tüm bitler çıkış olur daha sonra portb'ye 15 gönderilir

XX_CİHAN_XX

Alıntı yapılan: "HEXF2"bu kod Portb'yi ilk önce çıkış yapar daha sonra 15 değerini yerleştirir.Yani tüm bitler çıkış olur daha sonra portb'ye 15 gönderilir
Peki portb nin tum bıtlerını cıkıs yapmadan port b ye 15 datasın veya herhangı bır datayı nasıl yuklerız.(Diyelim ki portb,7. bitin gırıs kalmasını ıstıyorum)???
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

SpeedyX

#byte portb = 6
.
.
.
.
void main(){
    portb=0b00001111;
}

mmengi

#use fast_io (B)


Bu tanımlamayı program başında belirtirsen portları set yada reset yaparken tris değerlerini değiştirmeden uygularsın.

CaFFeiNe

#byte PORTB = 0x06 
#byte TRISB = 0x86 

TRISB = 0bXXXXXXXX;
PORTB = 0bXXXXXXXX;


ben bu şekilde kullanıyorum (zaten mümkün olduğunca CCS nin hazır fonksiyonlarından kaçmaya uğraşıyorum kimbilir belki ilerde başka bir C derleyiciye geçmem gerekebilir)

XX_CİHAN_XX

Alıntı yapılan: "CaFFeiNe"
#byte PORTB = 0x06 
#byte TRISB = 0x86 

TRISB = 0bXXXXXXXX;
PORTB = 0bXXXXXXXX;


ben bu şekilde kullanıyorum (zaten mümkün olduğunca CCS nin hazır fonksiyonlarından kaçmaya uğraşıyorum kimbilir belki ilerde başka bir C derleyiciye geçmem gerekebilir)
Evet bende bu sekılde kullandıgım ıcın sordum baska bır yolu var mı acaba dıye sordum ama bırkez daha olmadıgını gordum.Gozunu seveyım assembler ın  :lol:
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Digimensch

@HEXF2
Alıntı Yapbu kod Portb'yi ilk önce çıkış yapar daha sonra 15 değerini yerleştirir.Yani tüm bitler çıkış olur daha sonra portb'ye 15 gönderilir
Tesekkürler verdigin cevap icin.
Yani bu satir ile
output_b (15);
Port B'nin Bitleri (RB0-RB7) önce low sonrada
15=00001111 degeri PortB'e Bitlerine gönderiliyor.Dolaysiyla PortB'nin ilk  biti (RB0,RB1,RB2,RB3) high , ve diger bitleri (RB4,RB5,RB6,RB7) low oluyor.
Dogrumu anlamsim??

XX_CİHAN_XX

Alıntı yapılan: "Digimensch"
Yani bu satir ile
output_b (15);
Port B'nin Bitleri (RB0-RB7) önce low sonrada
15=00001111 degeri PortB'e Bitlerine gönderiliyor.
Bu ifade yanlış cunku portbnin degıl trısb nin butun bıtlerı low olur(boylelıkle portb cıkıs olarak konumlandırılır) akabinde dedıgın gıbı portb ye 15 ifadesı yuklenır yanı b0-b3 arası hıgh konumda iken b4-b7 arası low konuma duser.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

HEXF2

Evet beni yalnış anlamışsın dostum ben PORTB ilk önce çıkış olur yani TRISB low olur daha sonra PORTB'ye 15 yüklenir ve Portb.2den 15 bilgisi gönderilmiş olur

Digimensch

Simdi celiskide kaldim.
Tamam Önce TrisB bitleri low yani cikis oluyor.Burasini anladim.
Ama
HEXF2
Alıntı YapTRISB low olur daha sonra PORTB'ye 15 yüklenir ve Portb.2den 15 bilgisi gönderilmiş olur
Bu satirda output_b (15);Portb.2 ifadesi nerde?

Benim anlamis oldugum sekli ile aynisini
XX_CİHAN_XX arkadasda demis
Alıntı Yaptrısb nin butun bıtlerı low olur(boylelıkle portb cıkıs olarak konumlandırılır) akabinde dedıgın gıbı portb ye 15 ifadesı yuklenır yanı b0-b3 arası hıgh konumda iken b4-b7 arası low konuma duser.


Simdi TrisB bitleri önce low yani cikis oluyor.Sonrada Satirda gecen 15 Ifadesi ne oluyor??

XX_CİHAN_XX

@Digimensch
output_b (15);
komutu portb cıkıs yapıp 15 datasını portb ye yukler.Bukadar basıt. :!:
Burada nereyi anlamadıgını anlamadım :D
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

CaFFeiNe

@Digimensch

C'den önce pic in yapısını datasheetlerini incelemen daha yararlı diye düşünüyorum