Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Basit bir soru

Başlatan NamTech, 10 Haziran 2018, 21:23:27

NamTech

Merhabalar,

Ben jal derleyicisinden ccsc ye geçmeye çalışıyorum. Sorum şu.
Jalde tek pin için programın herhangi bir yerinde tanımlama yapabiliyorum

örneğin jalde
pin_b7_direction = input
pin_b7 = high

gibi.

aynı işlemi ccsc de yapmanın bir yolu varmıdır, yoksa her seferinde set trisx komutu ile port yönü belirlemem mi gerekiyor.
diğer pinleri tekrar ayarlamadan tek pin işlemi varmı.

Tüm arkadaşlara teşekkür ederim
Kim Ne Derse Desin Alelade Birisi.

vitruvius

main() icinde bir kere ayarlasan yeterli. Bu arada basligin da icerigi/sorununu aciklar nitelikte olmali.

esensoy

#define input 1
#define output 0
#byte TRISB = 0xF93 (TRISB adresine datasheetten bakın,18f452 yi yazdım)
#bit pin_b7_direction = TRISB.7
#byte PORTB = 0xF8A
#bit pin_b7= PORTB.7

void main(){
int1 a=0;
pin_b7_direction = input;
a=pin_b7;

while(1)
}

TRIS PORT VE LAT registerları olan picler için geçerlidir,
Bu tip PIC lerde bir pini;
   giriş yapmak için TRIS ilgili bitini 1 yapıp PORT ilgili bitinden okuma yapmayı,
   çıkış yapmak için TRIS ilgili bitini 0 yapıp LAT  ilgili bitine yazmak gerektiğini hatırlatıyorum,
En tehlikeli an "zafer" anıdır.

sadogan

CCS bu işeri otomatik yapar.
#use standard_io(B) // bu tanımlamayı yapınca.
1 yapmak için
output_high(PIN_B7);
0 yapmak için
output_low(PIN_B7);
okumak için
x=input(PIN_B7);
//////////////////////////////
Ama CCS karışmasın işime dersen
#use fixed_io(b_outputs=PIN_B7) // pin b7 hep çıkış
set_tris_b(0b01111111);// pin b7 çıkış oldu
1 yapmak için
output_high(PIN_B7);
0 yapmak için
output_low(PIN_B7);


x=input(PIN_B7);// bu  çalışmaz, ccs bunu otomatik giriş yapmaz.

2 si arasındaki fark ise fixsed olark tanımlalan hızlı çalışır.


fide

Output_float(pin_a0) ve output_drive(pin_a0) komutları ile aynı pini giriş yada çıkış olarak portun diğer pinlerini oynamadan konfigure edebilirsin. Çıkış yaptığın zaman output_high / low yapar, giriş yaptığın zaman input_state(pin_a0) şeklinde okuyabilirsin. Sanırım sorun bu idi.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com