BENİM MERAK ETTİĞİM. TUŞALARA SIRAYLA BASILMAZSA NASIL BİR TEPKİ VERMESİ GEREKTİĞİ. 1. , 2. , 3. , 4. TUŞLARA SIRAYLA BASTIĞINIZDA ARTACAK. 4.3.2.1. SIRAYLA BASTIĞINIZDA DA AZALACAK. AMA 1.2. BASIP DA 3 Ü ATLAYIP 4 YAPARSAK? YADA AZALTIRKEN RASGELE 4.3.2.1. YERİNE 3.4. 1.2. YAPARSAK NASIL BİR TEPKİ VERSİN. SIRADAN GİDİLMEZSE TEPKİ VERMESİN Mİ? YADA NASIL BİR TEPKİ VERSİN. (HER İHTİMALİ DEĞERLENDİRMEK GEREKİYOR Kİ YANLIŞLIK OLMASIN.)
EĞER AMACIN. TUS 1 E BASILDIĞINDA PWM İN DEĞERİ %25 OLSUN ARDINDAN TUŞ 2 YE BASILDIĞINDA %50 ..... OLSUN. TUŞ ATLARSAM DA TUŞA İLK BASIS SA EĞER TUS DEGERİ OLAN PWM OLsUN İSE;
while(TRUE)
{
if(input(tus_1)) // tus 1 e basılsıysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if(tus_1_kontrol==0) { tus_1_kontrol=1; set_pwm1_duty(yuzde_25); } // tuşa ilkkez basıldıysa lambayı yak
else { tus_1_kontrol=0; set_pwm1_duty(yuzde_0); } // ikinci kez basıldıysa lambayı sönder
tus_2_kontrol=0;
tus_3_kontrol=0;
tus_4_kontrol=0;
while(input(tus_1));
}
if(input(tus_2)) // tus 2 e basılsıysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if(tus_2_kontrol==0) { tus_2_kontrol=1; set_pwm1_duty(yuzde_50); } // tuşa ilkkez basıldıysa lambayı yak
else { tus_2_kontrol=0; set_pwm1_duty(yuzde_0); } // ikinci kez basıldıysa lambayı sönder
tus_1_kontrol=0;
tus_3_kontrol=0;
tus_4_kontrol=0;
while(input(tus_2));
}
if(input(tus_3)) // tus 3 e basılsıysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if(tus_3_kontrol==0) { tus_3_kontrol=1; set_pwm1_duty(yuzde_75); } // tuşa ilkkez basıldıysa lambayı yak
else { tus_3_kontrol=0; set_pwm1_duty(yuzde_0); } // ikinci kez basıldıysa lambayı sönder
tus_1_kontrol=0;
tus_2_kontrol=0;
tus_4_kontrol=0;
while(input(tus_3));
}
if(input(tus_4)) // tus 4 e basılsıysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if(tus_4_kontrol==0) { tus_3_kontrol=1; set_pwm1_duty(yuzde_100); } // tuşa ilkkez basıldıysa lambayı yak
else { tus_4_kontrol=0; set_pwm1_duty(yuzde_0); } // ikinci kez basıldıysa lambayı sönder
tus_1_kontrol=0;
tus_2_kontrol=0;
tus_3_kontrol=0;
while(input(tus_4));
}
}
// KISACA YAZILIM; BASILAN TUŞUN DEGERİNİ PWM E AKTARIR. TUŞA İKİNCİ KEZ BASILIRSA LAMBA SÖNER. TUŞLARA SIRADAN BASMAK YADA BASMAMAK Bİ SORUN OLUŞTURMAZ. 1. TUŞA BASIP ARDINDAN 2. TUŞA BASILIRSA VE ARDINDAN TEKRAR 1. TUŞA BASILIRSA; 1 TUŞA İLK BASILMIŞ GİBİ İŞLEM YAPAR.
2. BASISTA LAMBAYI SÖNDERMESİN TUŞLAR %25 ARTIRMA VE AZALTMA YAPSIN VE TUŞLARA SIRADAN BASACAĞIM ONUN HARİCİ KABUL ETMESİN DİYORSANIZ; (sadece 1 tuş için. diğerleri için buna uygun tasarlarsınız.)
if(input(tus_1)&&(pwm_duty_deger=<yuzde_25)) // tus 1 e basılsıysa ve pwm %50 ve aşağısındaysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if((tus_1_kontrol==0)&&((tus_2_kontrol==1)) // tuşa ilkkez basıldıysa ve daha önce tus 2 ye basıldıysa lamba ışığını düşür
{
tus_1_kontrol=1;
tus_2_kontrol=0;
pwm_duty_deger= yuzde_0;
set_pwm1_duty(pwm_duty_deger);
}
else if((tus_1_kontrol==0)&&((tus_2_kontrol==0)) // tuşa ilkkez basıldıysa ve daha önce tus 2 ye basılmadıysa lamba ışığını artır
}
tus_1_kontrol=1;
pwm_duty_deger= yuzde_25;
set_pwm1_duty(pwm_duty_deger);
}
else // tuşa ikinci kez basıldıysa ve daha önce tus 2 ye basıldığını önemseme lambayı sönder
}
tus_1_kontrol=0;
tus_2_kontrol=0;
tus_3_kontrol=0;
tus_4_kontrol=0;
pwm_duty_deger=0;
set_pwm1_duty(pwm_duty_deger);
}
while(input(tus_1));
}
YOK ARKADAŞ BU DA DEĞİL; TUŞLAR %25 ARTIRMA VE AZALTMA YAPSIN. LAMBAYI SONDURME İŞLEMİNİ TUŞ 1 E BASISTA YAPSIN DERSEN.; (SADECE 1 TUŞ İÇİN
if(input(tus_1)&&(pwm_duty_deger=<yuzde_25)) // tus 1 e basılsıysa ve pwm %50 ve aşağısındaysa
{
delay_ms(10); // buton arkına karşılık azcık bekle
if((tus_1_kontrol==0)&&((tus_2_kontrol==1)) // tuşa ilkkez basıldıysa ve daha önce tus 2 ye basıldıysa lamba ışığını düşür
{
tus_1_kontrol=1;
tus_2_kontrol=0;
pwm_duty_deger= yuzde_0;
set_pwm1_duty(pwm_duty_deger);
}
else if((tus_1_kontrol==0)&&((tus_2_kontrol==0)) // tuşa ilkkez basıldıysa ve daha önce tus 2 ye basılmadıysa lamba ışığını artır
}
tus_1_kontrol=1;
pwm_duty_deger= yuzde_25;
set_pwm1_duty(pwm_duty_deger);
}
else // tuşa ikinci kez basıldıysa ve daha önce tus 2 ye basıldığını önemseme lambayı sönder
}
// TUŞ 1 E ARDARDA 2. KEZ BASILIRSA NE YAPACAKSA? O YAZILSIN(EN AZINDAN 4. TUŞ İÇİN DÜŞÜRME İŞLEMİ YAPMANIZ GEREKECEK.
tus_1_kontrol=0;
}
while(input(tus_1));
}
ANLADIĞIM KADARIYLA BEN SİZİN ÇALIŞMAYI YANLIŞ ANLAMIŞIM, İSTEDİĞİNİZE GÖRE CEVAP VEREMEMİŞİM.
YUKARIDAKİLERİN SİZİN İSTEDİĞİNİZ OLDUĞUNU SANMIYORUM. İNŞ. SİZİN İSTEDİĞİNİZ GİBİDİR. İŞİN ÖZÜ; SİZİN NE YAPMAK İSTEDİĞİNİZİN MANTIĞINI DEĞİŞKENLER VASITASIYLA KONTROL ETMEYE ÇALIŞMANIZ GEREKECEK.
YUKARIDAKİ YAZILIM İŞİNİZİ GÖRMEZ İSE TÜM İHTİMALLERİN ÖNEM YADA ÖNEMSİZLİĞİ GÖZ ÖNÜNDE BULUNDURULARAK VE TUŞLARA GÖRE TAM OLARAK NE OLMASINI İSTEDİĞİNİZİ YAZARSANIZ (SİZ YAZMIŞSINIZ AMA BAHSETTİĞİM TUŞA SIRADAN BASMAMAK GİBİ Bİ ŞEY OLURSA NE OLACAK?) TAM OALRAK İSTEDİĞİNİZ GİBİ Bİ ÇALIŞAN YAZILIMI AKŞAM SAAT. 23,00 A HAZIRLAR SUNARIM. (SAAT 21,00 A KADAR EVE ANCA GİDERİM.) İNŞ. İSTEDİĞİNİZ GİBİ YAZILIM YAPALIM.
KOLAY GELSİN.