for next döngüsü

Başlatan tufan953, 13 Aralık 2016, 12:43:59

tufan953

değerli ete hocamıza ve ustalarıma herkese kolay gelsin takıldığım bi konuda bilgi almak istiyorum
bir program yazdım ama bi yerde takıldım for next döngüsü çalışırken bir tus vasıtasıyla programı basa almak istiyorum
program tusa basıldığında 1 saat 1.led çalışıp daha sonra 2. led 2saat çalışıyor ama for next döngüsü çalışmaya basladıgında ikinci bir tus vasıtasıyla programı basa alamadım yardımlarınızdan dolayı şimdiden teşekkür ederim

tufan953

 TRISA=%00000010
SYMBOL TUS=PORTA.1
LED1 VAR PORTB.0
LED2 VAR PORTB.1
SURE VAR BYTE

  SURE=0

BASLA:


IF TUS=0 THEN

HIGH LED1
GOSUB TF
LOW LED1
HIGH LED2
GOSUB TFN
LOW LED2
ENDIF
GOTO BASLA


TF:
    FOR SURE=1 TO 60
    PAUSE 60000
    NEXT SURE
    RETURN
   


TFN:
  FOR SURE=1 TO 120
  PAUSE 60000
  NEXT SURE
  RETURN
 
  END

ete

Bu şekilde yaparsan bir tuşa basmak yada basılan tuşu algılatmak için 60 sn yani 1 dakika beklemen gerekecek.
Tuş kontrolünü daha hassas hale getirebilmek için döngüiçindeki zaman dilimini küçültmek gerekir.


X VAR WORD
DON VAR BIT
SYMBOL TUSA=PORTA.0
SYMBOL TUSB=PORTA.1

BASLA:
   
  IF TUSA=0 THEN
      HIGH LED1
      GOSUB TF:IF DON=1 THEN BASLA
      LOW LED1
      HIGH LED2
      GOSUB TFN:IF DON=1 THEN BASLA
      LOW LED2
  ENDIF
   
    GOTO BASLA

TF:
    DON=0
    FOR SURE=1 TO 60
        FOR X=0 999   
            PAUSE 1
            IF TUSB=0 THEN CIK
        NEXT
    NEXT
    RETURN
CIK:
       DON=1
       RETURN

TFN:
        DON=0
       
       FOR SURE=1 TO 120
          FOR X=0 TO 999
               PAUSE 1
               IF TUSB=0 THEN CIK
         NEXT                 
      NEXT
     RETURN


Uzun döngüden dolayı zaman uzayabilir. 999 sayısını biraz azaltarak bu uzamayı dengelemek mümkündür Bunun için simulasyonda belirli bir süre deneme yapıp sürenin doğru gidip gitmediğine bakılarak doğru değer bulunabilir.

Ete

ersangundogdu

MCLR pini kullanılarak pice reset attırmak pratik çözüm olabilir...

tufan953

ete hocam verdiğiniz cevap için çok teşekkür ederim saygılarımla

Powered by EzPortal