IF ve OR kullanımı

Başlatan . Kağan, 10 Mart 2014, 17:30:19

. Kağan

Alıntı YapIF
            FARK_A - FARK_B > 5 OR FARK_A - FARK_C > 5 OR FARK_A - FARK_D > 5 THEN
            LED_SOL_ON = 1
            BEKLE =1
            endif
        IF   
            FARK_B - FARK_A > 5 OR FARK_B - FARK_C > 5 OR FARK_B - FARK_D > 5 THEN
            LED_SAG_ON = 1
            BEKLE =1
            endif
        IF   
            FARK_C - FARK_A > 5 OR FARK_C - FARK_B > 5 OR FARK_C - FARK_D > 5 THEN
            LED_SOL_ARKA = 1
            BEKLE =1
            endif
        IF   
            FARK_D - FARK_A > 5 OR FARK_D - FARK_B > 5 OR FARK_D - FARK_C > 5 THEN
            LED_SAG_ARKA = 1
            BEKLE =1   
            ENDIF

şeklinde kullandım fakat derlerken hata veriyor. Yardım lütfen.

Hattuşa

#1
kağan ustam fikir verirmi bilmem ama



sonuc_1 =fark_a -fark_b
sonuc_2 =fark_a -fark_c
sonuc_3 =fark_a -fark_c

if sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 then
led_sol_on =1
bekle =1
endif


gibi bir şekle dönüştürsen olmaz mı?

. Kağan

bunuda deneyeceğim fakat benim yazım niçin hata veriyor acaba?

rambili

#3
** endif   değilde ENDIF olmalı
** veya kodun tamamını özelden gönder bir bakalım. Yazdığın doğru görünüyor. ..
Zaman su gibidir.
Bazen deli bir ırmak, bazende durgun akar.

. Kağan

derleyicide ENDIF şeklinde zaten

MS_59

Alıntı YapIF
            FARK_A - FARK_B > 5 OR FARK_A - FARK_C > 5 OR FARK_A - FARK_D > 5 THEN
            LED_SOL_ON = 1
            BEKLE =1
            endif
değilde

IF  FARK_A - FARK_B > 5 OR FARK_A - FARK_C > 5 OR FARK_A - FARK_D > 5 THEN
            LED_SOL_ON = 1
            BEKLE =1
            endif

bu şekilde yap IF ile THEN aynı satırda olsun

mehmet

. Kağan

PROTEUS Teşekkürler. Aynen derlendi.

. Kağan

#7
Bir sorum daha var. Aşağıdaki kodda TETIK=1 ile TETIK=0 arası kaç ms yada saniye sürer? Kodun sonunda tetik pininin kapanması gerekmez mi? Açık kalıyor gibi tetik pinine bağlı led yanık kalıyor. TETIK pini ölçümler için gerekli enerjiyi sağlıyor.
   TETIK = 1
                 
            FOR I = 0 TO 50         '50 KEZ OKU VE ADCIN 0 DEN OKUYUP OLCUM_A'YA YAZ..
                ADCIN 0 , OLCUM_A
                NEXT I
            IF OLCUM_A < 10 THEN OLCUM_A = 0   'EĞER ÖLÇÜM OLCUM_A "10" DAN KÜÇÜKSE SIFIR KABUL ET
                PAUSE 2
               
                           
'*******************************************************************************     
       
                           
            FOR I = 0 TO 50           '50 KEZ OKU VE ADCIN 1 DEN OKUYUP OLCUM_B'YE YAZ.
                ADCIN 1 , OLCUM_B
                NEXT I
            IF OLCUM_B < 10 THEN OLCUM_B = 0
           
                PAUSE 2
       
'*******************************************************************************             
           
     
            FOR I = 0 TO 50             '50 KEZ OKU VE ADCIN 2 DEN OKUYUP OLCUM_C'YE YAZ.
                ADCIN 2 , OLCUM_C 
                NEXT I
            IF OLCUM_C < 10 THEN OLCUM_C = 0
               
                PAUSE 2
         
'*******************************************************************************             
           
                       
            FOR I = 0 TO 50              '50 KEZ OKU VE ADCIN 3 DEN OKUYUP OLCUM_D'YE YAZ.
                ADCIN 3 , OLCUM_D
                NEXT I
                IF OLCUM_D < 10 THEN OLCUM_D = 0
           
                PAUSE 2
               
              TETIK = 0


Yukarıdaki ölçümler bitene kadar tetik pinin açık kalması in bu kod yeterli mi? Yoksa belli bir süre vermem gerekir mi?

Mesela

 TETIK = 1
          pause 500
          TETIK = 0
                 
            FOR I = 0 TO 50         '50 KEZ OKU VE ADCIN 0 DEN OKUYUP OLCUM_A'YA YAZ..
                ADCIN 0 , OLCUM_A
                NEXT I
            IF OLCUM_A < 10 THEN OLCUM_A = 0   'EĞER ÖLÇÜM OLCUM_A "10" DAN KÜÇÜKSE SIFIR KABUL ET
                PAUSE 2
               
                           
'*******************************************************************************     
       
                           
            FOR I = 0 TO 50           '50 KEZ OKU VE ADCIN 1 DEN OKUYUP OLCUM_B'YE YAZ.
                ADCIN 1 , OLCUM_B
                NEXT I
            IF OLCUM_B < 10 THEN OLCUM_B = 0
           
                PAUSE 2
       
'*******************************************************************************             
           
     
            FOR I = 0 TO 50             '50 KEZ OKU VE ADCIN 2 DEN OKUYUP OLCUM_C'YE YAZ.
                ADCIN 2 , OLCUM_C 
                NEXT I
            IF OLCUM_C < 10 THEN OLCUM_C = 0
               
                PAUSE 2
         
'*******************************************************************************             
           
                       
            FOR I = 0 TO 50              '50 KEZ OKU VE ADCIN 3 DEN OKUYUP OLCUM_D'YE YAZ.
                ADCIN 3 , OLCUM_D
                NEXT I
                IF OLCUM_D < 10 THEN OLCUM_D = 0
           
                PAUSE 2
               
             


Şeklinde başta mı gecikme vermem gerekir.

ete

#8
Tahminen söylemek mümkün. Döngün yaklaşık 1 ms tutar , 2 ms de gecikmen var döngü başına 3 ms lik bir süre demektir bu. 4 adet döngü ise toplamda 12ms eder 1 ms tolerans ekle tetik komutları arası yaklaşık 13 ms tutar.
Gecikme koyup koymamayı sen kararlaştır. Neden gerekli bu gecikme onu anlamadım henüz.
Olur olmaz yerlere gerekmedikçe gecikme koymayınız. Programınızı olumsuz yönde etkiler.

Ete

. Kağan

Teşekkürler ETE.

Pro tr şu şekilde mi tarif etmek istedin?

       SONUC_1 =fark_a -fark_b
            SONUC_2 =fark_a -fark_c
            SONUC_3 =fark_a -fark_D

            if sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 then
            led_sol_on =1
            bekle =1
           
        '*******************************
           
            SONUC_1 =fark_B -fark_A
            SONUC_2 =fark_B -fark_c
            SONUC_3 =fark_B -fark_D

            if sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 then
            led_SAG_on =1
            bekle =1
           
        '*******************************   
           
            SONUC_1 =fark_C -fark_A
            SONUC_2 =fark_C -fark_B
            SONUC_3 =fark_C -fark_D

            if sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 then
            led_sol_ARKA =1
            bekle =1
         
       '******************************* 
       
            SONUC_1 =fark_D -fark_A
            SONUC_2 =fark_D -fark_B
            SONUC_3 =fark_D -fark_C

            if sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 then
            led_sAG_ARKA =1
            bekle =1

       '*******************************
         ENDIF         
            endif
              ENDIF
                 ENDIF

Powered by EzPortal