burda hata var mi

Başlatan selvi, 23 Ekim 2007, 19:08:55

selvi

SerIn2 PORTA.1,140,[WAIT ("ARA"),dec AL]  
HEDEF=AL
   SENSOR:  
      IF PORTA.3=1   THEN
       SAYAC=SAYAC+1
       PAUSE   500            
   IF SAYAC=HEDEF THEN
     PORTB.0=1
     PAUSE 500
     PORTB.0=0
     SAYAC=0
   ENDIF
   GOTO SENSOR
   ENDIF
ornegin sayac=4 yazdigimda porta.3 bagladigim butuna 4 kez basinca islem yapiyor.ama sayac=hedef yapinca program butuna hedefdeki sayi kadar butona basinca program islem yapmiyor.
Yaşam anlamlandırıldıkça kutsaldır....

ErsinErce

bir tane endif fazla :)

selvi

kusura bakmayin ben yanlislikla  fazladan bir endif eklemisim.derlemede sorun yok.proteusda simulasyonda ustte belirtigim sorun karsima cikiyor.bu sorunu nasil giderebilirim.
Yaşam anlamlandırıldıkça kutsaldır....

ftsahin

SerIn2 PORTA.1,140,[WAIT ("ARA"),dec AL] 
HEDEF=AL


Hedef değişkeni Serin2 komutuyla dışarıdan alınıyor. Eğer dışarıdan bilgi alınmamışsa veya yanlış alınmışsa yanlış çalışması normaldir. Eğer sağlam veri gönderemiyorsanız AL değerini LCD'de gösterin. Böylece bu değişkenin içeriğini görüp sorunu daha kolay tespit edebilirsiniz. Bir nevi Debug işemi yapmış olursunuz.

selvi

teşekkürler.o belirttigim sorunu cozdum.fakat program calisirken ben istedigim zaman kapatmak istiyorum.sayaci sifirlamak icin.ama program sensor etiketinde sonsuz donguye giriyor.al=233 verisini yollayip sistemi kapatmak istiyorum.nasil bir degiskilik yapmam gerekiyor.sorunun cozulmesi icin programin surekli start etiketine gitmesi ve kapatma degeri gelmedigi surece sensor etiketinde olmali.fakat programda bunu nasil uygulayacagimi bilmiyorum.ilkaklima gelen bu.farkli yontemlerde olabilir.
START:
SerIn2 PORTA.1,140,[WAIT ("ARA"),dec AL]
HEDEF=AL
SENSOR:
IF PORTA.3=1 THEN
SAYAC=SAYAC+1
PAUSE 500
IF SAYAC=HEDEF THEN
PORTB.0=1
PAUSE 500
PORTB.0=0
SAYAC=0
ENDIF
GOTO SENSOR
ENDIF
KAPAT:  
       IF  AL=233 THEN
         PORTB.2=1
         SAYAC=0
          ENDIF
GOTO START
Yaşam anlamlandırıldıkça kutsaldır....