16f628a yardım.

Başlatan melih654, 11 Nisan 2012, 16:56:37

melih654

yazdığım bi programda motorun 10 sn ileri ondan sonra 5 sn geri çelıştırmak istiyorum fakat sensorum algıladığında durması gerekiyo.pause la yapınca haliyle programda gecikme oluyo ve sensor gorsede her hangi bişey olmuyor. plc deki gibi timer tarzı bişey varmı ? yada başka türlü nasıl yaparım?


ibrsel

Elbetteki timer var ve kullanabilirsin..Sitede interupt kullanımı ile ilgili bir çok açıklama var..Ama bu iş için başka çözümlerde bulabilirsin.
While-Wend komutları ile yada  FOR-NEXT li bir döngü ile veya  gecikme yaparak PAUSE den kurtulabilirsin.Döngü içerisinde sensör bilgini okutmalısın.

Basit bir örnek vereyim;

SYMBOL Sensor=PORTB.0                  '' Sensörün Portb.0 a bağlı olmuş olsun
DIM a AS WORD                                 '' sayaç değişkeni
main:
      while sensor=0  a<60000           '' Sensör aktif değilse ve sayaç 60000 den küçükse döngüde kal.Buradaki 60000 değerini 
          Delayms 1                               '' yaklaşık 10 sn denk gelecek şekilde değiştireceksin   
          Motor=1                                  '' Motoru ileri dönder
          a=a+1
      wend
          a=0     
Goto main

serhat1990

Sensörünü harici kesme pinine bağlarsın ayrıca süreyide timerla yapman çok basit . İyi çalışmalar.

melih654

Alıntı yapılan: ibrsel - 13 Nisan 2012, 19:11:07
Elbetteki timer var ve kullanabilirsin..Sitede interupt kullanımı ile ilgili bir çok açıklama var..Ama bu iş için başka çözümlerde bulabilirsin.
While-Wend komutları ile yada  FOR-NEXT li bir döngü ile veya  gecikme yaparak PAUSE den kurtulabilirsin.Döngü içerisinde sensör bilgini okutmalısın.

Basit bir örnek vereyim;

SYMBOL Sensor=PORTB.0                  '' Sensörün Portb.0 a bağlı olmuş olsun
DIM a AS WORD                                 '' sayaç değişkeni
main:
      while sensor=0  a<60000           '' Sensör aktif değilse ve sayaç 60000 den küçükse döngüde kal.Buradaki 60000 değerini 
          Delayms 1                               '' yaklaşık 10 sn denk gelecek şekilde değiştireceksin   
          Motor=1                                  '' Motoru ileri dönder
          a=a+1
      wend
          a=0     
Goto main

Çok teşekkürler programı yazdım kısmetse yarın deneyeceğim..