Butona her basıldığında farklı komut işlemesi ?

Başlatan tabutcu, 28 Eylül 2013, 21:43:56

tabutcu

Merhaba. Bir adet butona her bastığımızda farklı işlemler yaptırabilir miyiz ? Örneğin ; Birinci basışta b0 pininden belirli aralıklarda kare dalga üretilecek , 2. basışta farklı değerlerde kare dalga üretilecek , 3.de farklı,farklı.Yapılabilirse bir örnek ile açıklar mısınız ? Şimdiden teşekkür ederim.

ahmetbudak

farklı değerlerde kare dalgadan kasıt farklı frekans ise a adlı bir eğişken tanıtılır butonun bağlı pin kontrol edilerek a değişkenine istenen gecikme değeri atanır  mesela b0 pininden 1Hz lik kare dalga için b0 20 ms high 20ms low (a=20)   2 Hz lik kare dalga için 10ms high 10ms low (a=10) yapılır

barisertekin

IF Yerine Switch yapısı kullanmak daha doğru olur. Sana kalmış. CCS C'ye göre uyarlarsın.

var KomutTipi = 1;

Button_Click Olayı
{

  IF(KomutTipi == 1)
  {
      .........
  }
  ELSE IF(KomutTipi == 2)
  {
      .........
  }
  ELSE IF(KomutTipi == 3)
  {
      .........
  }

  KomutTipi++;

  IF(KomutTipi > 3)
      KomutTipi = 0;

}

tabutcu

int q=0;

if(e=='B')
{
q++;

if(q==1)
{
output_high(pin_a0);
}
if(q==2)
{
output_high(pin_a1);
}
if(q==3)
{
output_high(pin_a2);
}
}

Bu şekilde yaptım.

ziyaretci

Alternatif olarak;
int secenekler=0;

 Void main(){
For(;;){
  if(input(pin_b0)){ while(input(pin_b0)); if(secenekler==255)secenekler=0; secenekler++;}
 
switch(secenekler)
{
case 1:  /* şunu yap */ break;
case 2:  /* bunu yap */ break;
//.
//.
//.
}

  }
}