ADC çevrimde WHILE WEND kullanılabilinir mi?

Başlatan blueboard, 03 Mart 2014, 23:01:44

blueboard

Ete Hocam, bir ADC çevrimi yapıyorum. Bu çevrimde butona ilk basıldığı anda 500 ms boyunce bir şey yapılmaması gerekiyor.500 ms den sonra pot1 etiketine gidilecek ve oradaki işlem yapılacak. Bu durum elimiz butona basılı olduğu sürece devam edecek. Bu işlemi while wend döngüsü ile yapabilir miyiz? Burada while wend kullanmak istememin sebebi şu: Bu döngü kullanılmayacak olursa normal döngü sonunda her dongu etiketine dönüldüğünde 500 ms  bekleme yapacak,bu durumda sistemin yavaş çalışmasına neden olacaktır.Bundan dolayı butona ilk basışta 500 ms beklesin,elimiz basılı tutulduğu sürece dongu etiketine gelmeden sürekli olarak pot1 etiketinin çalıştırılmasını istiyorum. Kendim  bunu while wend komutuyla yapmaya çalıştım ama çalışmada  hata veriyor.İlk basışta pot1 etiketi çalışıyor. Ancak daha sonra butona basılı da olsa basılı olmasa da hiç bir şey yapmıyor. Yardımcı olabilir misiniz?Aşağıda komutlarımı yazdım.Teşekkürler.


dongu:   

PAUSE 500
ADCIN 0, hamA 
IF HAMA > 1 AND HAMA < 103 THEN 
gosub  pot1
WHILE  HAMA > 1 AND HAMA < 103 :WEND
GOTO dongu
ENDIF

enginkanat

PAUSE 500
ADCIN 0, hamA
IF HAMA > 1 AND HAMA < 103 THEN
gosub  pot1
WHILE  HAMA > 1 AND HAMA < 103 :WEND
GOTO dongu
ENDIF

burada butonu göremedim, arkadaşım,

PAUSE 500
ADCIN 0, hamA
WHILE HAMA>1 AND HAMA<103
POT1 İŞLEMLERİ
WEND
GOTO dongu
ENDIF

şeklinde olabilir? pot1 etiketini göremediğim için yorum yapamıyorum?

blueboard

#2
Buton şu şekilde: :5 volt gerilim 1 k direnç üzerinden picin AN0 piniden sürekli olarak geliyor.Butona bağlı direnç var. Bu direncin bir ucu şaseye bağlı diğer ucu ise butona bağlı. Butonun diğer ucu ise AN0 pinine bağlı.Doğal olarak butona basıldığında butona bağlı direnç devreye giriyor ve pic'e direncin değerine göre farklı gerilim uygulanmış oluyor.

http://i.hizliresim.com/wL6jvJ.png
En basit haliyle pot1 etiketini şöyle yazayım;

pot1:
portc.2=1
pause 80
portc.2=0
return

ete

İlk 500 ms lik durum için bir bit değişkeni kullanmak gerekir.
Ilk var bit şeklinde tanımlandıktan sonra,
Adcbak:
If ilk=0 then
  İlk=1
  Pause 500
Endif
Hama=2
While hama>1 and hama<103
Adcin 0,hama
Gosub pot1
Wend
Şeklinde olur
Ete

Powered by EzPortal