Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: NamTech - 10 Haziran 2018, 21:23:27

Başlık: Basit bir soru
Gönderen: NamTech - 10 Haziran 2018, 21:23:27
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
Başlık: Ynt: Basit bir soru
Gönderen: vitruvius - 10 Haziran 2018, 21:34:16
main() icinde bir kere ayarlasan yeterli. Bu arada basligin da icerigi/sorununu aciklar nitelikte olmali.
Başlık: Ynt: Basit bir soru
Gönderen: esensoy - 10 Haziran 2018, 22:02:45
#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,
Başlık: Ynt: Basit bir soru
Gönderen: sadogan - 10 Haziran 2018, 23:17:50
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.

Başlık: Ynt: Basit bir soru
Gönderen: fide - 11 Haziran 2018, 00:33:02
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.