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_bsonuc_2 =fark_a -fark_csonuc_3 =fark_a -fark_cif sonuc_1 >5 or sonuc_2>5  or sonuc_3 >5 thenled_sol_on =1bekle =1endif


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