{CCS C} pic12f675 ile pull up buton sinyalini yakalamak???

abt

Üye
Katılım
8 Ocak 2008
Mesajlar
23
Puanları
1
herkeze merhaba,pic12f675 üzerinde a5 pinine yolladığım yaklaşık 1sn süren negatif sinyale göre işlem yapmak istiyorum ancak denemediğim ne if sorguları kaldı nede sonsuz döngüler yardımınıza muhtacım lünfen yardım :( yapmak istediğim a5 pinine negatif sinyal gelince a0 pininin çıkışını high yapmak sürekli hatalarla karşılaşıyorum kullandığım bazı if sorguları şöyle ancak hiçbir işe yaramıyorlar

1-
if(input_state(pin_a5)==0) // ne 0 ne de 1 fayda etmedi
{
output_high(pin_a2);
delay_ms(100);
output_low(pin_a2);

2-
int but = input(PIN_A5);
while (input(PIN_A5) != but) {
output_high(pin_a4);
delay_ms(500);
output_low(pin_a4);
}


bunlar böyle uzar gider portları ayarlamak içinde;
output_drive(pin_a0);//çıkış
output_drive(pin_a2);
output_float(pin_a5);//giriş
kullandım ben daha tris olayını çözemedim:) sümüle ettiğim basit devre çizimimde ektedir
 

Ekli dosyalar

  • isisdevre.PNG
    isisdevre.PNG
    54.2 KB · Görüntüleme: 18
1-
if(input_state(pin_a5)==0) // ne 0 ne de 1 fayda etmedi
{
output_high(pin_a2);
delay_ms(100);
output_low(pin_a2);

2-
int but = input(PIN_A5);
while (input(PIN_A5) != but) {
output_high(pin_a4);
delay_ms(500);
output_low(pin_a4);
}


input_state() ile pinin giriş/çıkış yönlendirme bitinin (tris) o anki değerini alırsın.
Sorguyu "if(input(pin_a5)==0)" veya kısaca "if(!input(pin_a5))" şeklinde yapmalısın.


Ek olarak CCS'te input(pin_x) veya output_high(pin_x) gibi komutları kullandığında portlar otomatikman gerektiği şekilde giriş ve çıkış olarak ayarlanır, ayrıca tris bitlerinden ayarlaman gerekmez.
(Tris bitlerini manuel olarak ayarlamak için #use fast_io(port ismi) şeklinde bir tanımlama yapman gerekir ki şu an sanırım buna ihtiyaç yok.)

Sonuç olarak şu kodun çalışması lazım:

if(!input(pin_a5)){
output_high(pin_a2);
delay_ms(100);
output_low(pin_a2);}

Başarılar dilerim
 
input_state() ile pinin giriş/çıkış yönlendirme bitinin (tris) o anki değerini alırsın.
Sorguyu "if(input(pin_a5)==0)" veya kısaca "if(!input(pin_a5))" şeklinde yapmalısın.


Ek olarak CCS'te input(pin_x) veya output_high(pin_x) gibi komutları kullandığında portlar otomatikman gerektiği şekilde giriş ve çıkış olarak ayarlanır, ayrıca tris bitlerinden ayarlaman gerekmez.
(Tris bitlerini manuel olarak ayarlamak için #use fast_io(port ismi) şeklinde bir tanımlama yapman gerekir ki şu an sanırım buna ihtiyaç yok.)

Sonuç olarak şu kodun çalışması lazım:

if(!input(pin_a5)){
output_high(pin_a2);
delay_ms(100);
output_low(pin_a2);}

Başarılar dilerim
proteus 8 ve 7 de denedim kodu diğerleri gibi buda çalışmadı :/
 

Forum istatistikleri

Konular
127,959
Mesajlar
913,914
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst