ogzcndyr
Üye
- Katılım
- 1 Ocak 2013
- Mesajlar
- 77
- Puanları
- 1
- Yaş
- 27
Merhaba arkadaşlar pic öğrenmeye yeni yeni başlıyorum. Şuan sadece tris ayarları ve buton giriş çıkışlarını biliyorum. Bisikletim için bir devre yaptım 1.butonda sol sinyal, 2.butonda sağ sinyal, 2sine aynı anda basıldığında 4lüler yanmasını istiyorum. ilk 2 durum güzel çalışıyor ancak iki butona birden basılınca 1. ve 2.durumlar devam ettiğinden hem 4lü hemde sağ sol sinyaller yanıyor, karışık bir durum çıkıyor. Ben hocama sordum ! operatörünü kullanacaksın dedi tam açıklama alamadım. Bu konuda yardımcı olursanız sevinirim. Yazdığım program aşağıda;
int1 a,b; //2 bitlik değişkenler atadık
void main()
{
set_tris_a(0b11111111); //a portunu giriş yaptık
set_tris_b(0b00000000); //b portunu çıkış yaptık
set_tris_d(0b00000000); //d portunu cıkıs yaptık
output_b(0); //b pinlerini 0v verdik
output_d(0); //d pinlerine 0v verdik
while(TRUE) //sonsuz dongu olusturduk
{
a=input(pin_a0); //a deişkenini a0 portuna giriş olarak atadık
b=input(pin_a1); //b değişkenini a1 portuna giriş olarak atadık
if(a){ //eğer a 1 olursa aşağıdaki komutları çalıştır
output_b(31);
delay_ms(150);
output_b(0);
delay_ms(150);
}
if(b){ //eğer b butonuna basılırsa 1 olursa aşağıdaki komutları çalıştır.
output_d(248);
delay_ms(150);
output_d(0);
delay_ms(150);
}
if(a&b){ //a ve b butonuna basılırsa aşağıdaki komutlar çalışssın
output_b(31);
output_d(248);
delay_ms(150);
output_d(0);
output_b(0);
delay_ms(150);
}
}
}
int1 a,b; //2 bitlik değişkenler atadık
void main()
{
set_tris_a(0b11111111); //a portunu giriş yaptık
set_tris_b(0b00000000); //b portunu çıkış yaptık
set_tris_d(0b00000000); //d portunu cıkıs yaptık
output_b(0); //b pinlerini 0v verdik
output_d(0); //d pinlerine 0v verdik
while(TRUE) //sonsuz dongu olusturduk
{
a=input(pin_a0); //a deişkenini a0 portuna giriş olarak atadık
b=input(pin_a1); //b değişkenini a1 portuna giriş olarak atadık
if(a){ //eğer a 1 olursa aşağıdaki komutları çalıştır
output_b(31);
delay_ms(150);
output_b(0);
delay_ms(150);
}
if(b){ //eğer b butonuna basılırsa 1 olursa aşağıdaki komutları çalıştır.
output_d(248);
delay_ms(150);
output_d(0);
delay_ms(150);
}
if(a&b){ //a ve b butonuna basılırsa aşağıdaki komutlar çalışssın
output_b(31);
output_d(248);
delay_ms(150);
output_d(0);
output_b(0);
delay_ms(150);
}
}
}