Tek Buton ile Birden Fazla İş

atech21

Üye
Katılım
10 Tem 2010
Mesajlar
2
Puanları
1
ben pic yazmaya yeni başladım.benim sorunum tek buton ile sırasıyla başka etiketlere gitmek.örnek olarak RA pinindeki butona ilk bastığım zaman portbdeki ledler yanacak.2.kez bastığımda ledler sonecek birdaha bastığım zaman ledler yanıp sonecek aynı butona basğım zaman ledler sonecek.bunu yapmaya ğraştım hatta ornekler aradım yinede olmadı.lütfen acil olarak yardım edebilrmsiniz?şimdiden teşekür ederim
 
BUTON NORMALDE 1 BASILINCA 0 OLUYOR,VEYA SENİN BUTONA GORE AYRALARSIN
REPEAT
BTFSS PORTA,PIN
INCF SELECT,F ;BUTONA BASILDI İSE DEĞERİ BİR ARTIR
--------------------------
MOVLW 0X01
SUBWF SELECT,W
BTFSC STATUS,Z
CALL FIRST_SUB
---------------------------
MOVLW 0X02
SUBWF SELECT,W
BTFSC STATUS,Z
CALL SECOND
--------------------------
....
MOVLW 0XFF ;ÇIKIŞ DEĞERİ
SUBWF SELECT,W
BTFSS STATUS,Z
GOTO REPEAT
CLRF SELECT
..................
Kolay gelsin....
 
ben asm bilimiyorum.yukarda söylemeyi unuttum picbasic kullanıyorum.mümkünse basicle olsun yada nasıl yapıldığını soylerseniz yapmya çalışırım
 


Kod:
     trisa.0 = 1
     symbol buton = porta.0
     sayac var byte
     sayac = 0
main:
      pause 1
      if buton = 0 then main ; [I][COLOR="Blue"]butona basılmamışsa başa dön[/COLOR][/I]
      pause 50
      sayac = sayac + 1      ;[I][COLOR="Blue"]basıldıysa sayacı arttır[/COLOR][/I]

secim:
      SELECT CASE sayac
             CASE 1 
                   goto gorev_1   ;[I][COLOR="Blue"]sayac değerine göre uygun etikete git[/COLOR][/I]
             CASE 2 
                   goto gorev_2
             CASE 3 
                   goto gorev_3
             CASE 4 
                   sayac = 1       ;[I][COLOR="Blue"]sayac 3'ü geçtiyse tekrar 1 yap ve[/COLOR][/I]
      END SELECT

      goto secim     ;[I][COLOR="Blue"]1. görev etiketine yollanmak üzere secim etiketine git[/COLOR][/I]

gorev_1:
      (şunu yap)                  ;[I][COLOR="Blue"]ilk basışta yapılacaklar[/COLOR][/I]
      goto main
gorev_2:
      (bunu yap)                  ;[I][COLOR="Blue"]ikinci basışta yapılacaklar[/COLOR][/I]
      goto main
gorev_3:
      (şunu, şunu yap)          ;[I][COLOR="Blue"]üçüncü basışta yapılacaklar[/COLOR][/I] 
      goto main

end

kolay gelsin
 
ccs de yapacaksan tyildizak hocamın yaptığı gibi swich case şartını kullanmak işini çözer. kolay gelsin.
 
ben bu işlemi ccs'de yapmak istiyorum ama daha önce hiç switch case kullanmadım..içiçe if'lerle yapmaya çalıştım,onu da beceremedim..ccs ile switch case kullanarak yapılmış bir örnek verirseniz sevinirim..
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…