pcbway

CCS C PIN Kontrol ?

Başlatan VonalOrdu, 21 Ağustos 2013, 09:16:28

VonalOrdu

Merhaba öncelikle kullandığım derleyiciyi ve yeni bir kullanıcı olduğumu söylemek isterim => CCS C Compiler.
Ben örneğin bir A0 pinine bir led bağladım ve bunu output_high(pin_a0) ile yaktım,
daha sonra bu A0 pini yanıyormu yanmıyormu nasıl kontrol edebilirim ?
Birde bunu değişken tanımlama gibi bir yöntemle yapmak istemiyorum örneğin;
output_high(pin_a0); durum=1;
output_high(pin_a0); durum=0;
yani direk pin durumunu vericek bir fonksiyon veya komut kümesi var mı ?

Elektrik2012

21 Ağustos 2013, 10:18:05 #1 Son düzenlenme: 21 Ağustos 2013, 10:20:57 Elektrik2012
Öncelikle foruma hoşgeldiniz keyifli zaman geçirmenizi temenni ederim.Dilimin döndügü kadarı ile yardımcı olmaya çalıştım.İstediginiz kodu ve ısıs simülasyonu ekte verdim.Özel tanımalamlar yaptım ledyak ve ledsondur bunları Ra0 pnine eşitledim.ra0 pinini 500ms ile yakıp söndürdüm.Bir pinin yanıp yanmadıgını görmek için ısıs led bağlayabilirsin.Bir pinin çıkışı 1 ise led yanar 0 ise yanmaz.Umarım yaardımcı olabildim.
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

VonalOrdu

İlginiz ve çalışmanız için çok teşekkür ederim fakat anlatamadım sanırım,
yapmak istedğimi sizin verdiğiniz çalışma üzerinden anlatmaya çalışayım.
#define ledyak pin_a0
#define ledsondur pin_a0

void main()
{
output_high(ledyak);
delay_ms(500);
output_low(ledsondur);
}
ledyak veya ledsondur pinlerinin dijital veya anlog değerlerini logic (true/false - 1/0) olarak almamıza imkan var mı ?
Tekrar teşekkür ederim.

Elektrik2012

21 Ağustos 2013, 10:35:42 #3 Son düzenlenme: 21 Ağustos 2013, 10:46:51 Elektrik2012
 ;)Tam demek istediginiz anlıyamadım kusura bakamyın. Tam olarak ne yapmak istiyorsunuz  pinlerinin lojik 1 yada 0 oldugunu okuttuktan sonra ne yapıcaksınız? :)
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

VonalOrdu

Alıntı yapılan: Elektrik2012 - 21 Ağustos 2013, 10:35:42;)Tam demek istediginiz anlıyamadım kusura bakamyın. Tam olarak ne yapmak istiyorsunuz  pinlerinin lojik 1 yada 0 oldugunu okuttuktan sonra ne yapıcaksınız? :)
Estafurullah ne kusuru, 1 veya 0 \'a göre işlem yaptırmayı düşünüyorum.

Elektrik2012

Şöyle anlatmaya çalışmak isstiyorum Çıkış lojik 1 olursa bir trasnsistörü tetikletip bir röle sürüp işlem yaptırabilirsiniz  :)Bc237 transistörün beyzine 1k ile pin A0 bağlayın Emiteri gnd verin pin lojik 1 oldugunda collektör ile emiter arası birleşir anahtar görevi yapar collektörü rölenin ucuna röle 12v rölenin 1ucunada + verirseniz olur inşallah dogru anladım
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

VonalOrdu

21 Ağustos 2013, 11:06:32 #6 Son düzenlenme: 21 Ağustos 2013, 11:07:42 VonalOrdu
Alıntı yapılan: Elektrik2012 - 21 Ağustos 2013, 11:01:17Şöyle anlatmaya çalışmak isstiyorum Çıkış lojik 1 olursa bir trasnsistörü tetikletip bir röle sürüp işlem yaptırabilirsiniz  :)Bc237 transistörün beyzine 1k ile pin A0 bağlayın Emiteri gnd verin pin lojik 1 oldugunda collektör ile emiter arası birleşir anahtar görevi yapar collektörü rölenin ucuna röle 12v rölenin 1ucunada + verirseniz olur inşallah dogru anladım
Bunları yapabiliyorum zaten problem olan o logic değerin durumunu mesala bir  lcd ekranına yazdırıcam ?
Alıntıint1 led_durumu;
led_durumu = ????????? //burada pic\'den ledin veya pinin durumunu alan bir fonksiyon olmalı
if (led_durumu==1) { printf(\"led yanıyor.\");}
if (led_durumu==0) { printf(\"led yanmıyor.\");}
tam olarak bu değil ama mantık bu olacak.

Elektrik2012

21 Ağustos 2013, 11:09:02 #7 Son düzenlenme: 21 Ağustos 2013, 14:48:16 Elektrik2012
Programı ve ısıs simülasyonu çizdim program buton 1 baasınca Ra0 pini  lojik 1 yapıyor ekranda lojik 1 olarak algılıyor buton 2 basılnca Ra0 pini 0 oluyor ve Lcd ekrana Ra0 pini lojik 0 yazzıyor umaraım yardımcı olabildim
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz

VonalOrdu

Alıntı yapılan: Elektrik2012 - 21 Ağustos 2013, 11:09:02Programı ve ısıs simülasyonu çizdim program buton 1 baasınca Ra0 pini  lojik 1 yapıyor ekranda lojik 1 olarak algılıyor buton 2 basılnca Ra0 pini 0 oluyor ve Lcd ekrana Ra0 pini lojik 0 yazzıyor umaraım yardımcı olabildim
Teşekkürler problemimi sayende çözdüm :)  hatam #use fast_io() ve set_tris_x() bu fonksiyon ve tanımlamalara bir türlü ısınamamış olmam ve bundan ötürü kullanmamam :) artık daha sıcak bakıyorum.
Birde başka arkadaşlarda aynı problemi yaşamasın diye problemi biraz daha açayım anladığım kadarıyla;
Ben giriş ve çıkışlerı ayarlamadığımdan input() fonksiyonunu kullanırken benim pinimi kontrol ederken değerinide değiştiriyordu örneğin
if(input(pin_a0))
{
....
}
dediğim zaman A0 pinine bakıyordu fakat değerinide tersine çeviriyordu bunu istemiyoruz tabi sessizce baksın ne durumda gelsin istiyordum fakat o ne yapıyor orayı karıştırıp geliyordu :)
Tabi A0 pinini sadece çıkış ayarladığımızdan input yapınca bir değişiklik yapamadı.
Diye düşünüyorum :)

Elektrik2012

Yardımı olabildiysem ne mutlu bana kolay gelsin  :)
Büyük adım atmaktan korkmayın uçurumu küçük  sıçramalarla geçemezsiniz