Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

ms ayarı

Başlatan uardal, 17 Ocak 2008, 12:06:46

uardal

merhaba herkese kolay gelsin, arkadaşlar aşağıdaki gibi bir kod yazdım, 1 ila 9 ms arasında gecikme yapmak istiyorum, ama değişkenlere atadığım sayılar isiste saniye cinsinde çıkıyor artı= 5 değeri isiste 500 ms görünüyor, ama pause 5 yazdığımda sorun yok, problem koddamı yoksa isistemi, yardımcı olursanız sevinirim.

ARTI VAR byte
 EKSI VAR byte
 
 ARTI = 5
 EKSI = 5
 
 BASLA:
 HIGH PORTB.1
 PAUSE ARTI
 LOW PORTB.1
 PAUSE EKSI

 IF PORTD.0 = 1 THEN 
 GOTO HIZARTIR
 ENDIF
 IF PORTD.1 = 1 THEN
 GOTO HIZAZALT
 ENDIF
 GOTO BASLA


 MOD NOTU: Kod tagını kullanalım. Erol.

ete

Çok merak ettiğim için soruyorum. Artı nın almış olduğu 500 değerini isis te nasıl görüyorsun?. Normlde byte cinsinden olan artı değişkeni en fazla 255 değerini alabilir.
Şayet sağladığı gecikmeyi görerek bu kanıya varıyorsan hassa bir şekilde 500 ms yi ölmen de mümkün değil. Yoksa ekran altında gördüğün isis saatinden mi bu süreyi ölçüyorsun. Biraz detay verirsen memnun olurum.

Süre komutlarının hassas çalışabilmesi için
Define OSC 4
komutunu kullanmanı öneririm. Ayrıca isisdeki işlmecinin frekansı default olarak genelde 1 Mhz çıkmaktadır. Orayı 4 MHZ olarak değiştirdinmi?.
Bunların hepsi detay ama sonuca etki eden detaylar.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

uardal

500 ms yi isiste ledin yanma süresine bakarak yaklaşık olarak söylüyorum, yoksa kesin bişi yok,burda anlamadığım 5 ms gecikme sağlandığında devamlı yanması gerekmiyormu? isiste osc değeri 4 mhz de , devreyi isiste çalıştırdığımda sanki 500ms değeri girilmiş gibi led yanıp sönüyor , ama artı ve eksi yerine pause 5 yazdığımda ledin yanıp sönme süresini hissdemiyorsun,yani normal prosedürde çalışıyor, acaba isismi beni yanıltıyor?

uardal

ete hocam devreyi osilaskopa bağlayınca gördümki, isis beni yanıltmış, osilaskopta devrenin güzel çalıştığı anlaşılıyor , seni uğraştırdım, yardımların için teşekkürler

uardal

ete hocam devreyi pic e yükledim ve pic in 1 sn lik periyot içinde duty ve cycle değeri nin değiştiğini gördüm, ama ben artı ve aksi değerlerini 5 olarak vermiştim. ilk çalışmada 500 ms yanıyor,500ms sönüyor, artırdığımız zaman 600ms yanıyor 400 ms sönüyor, artırmalarda felan sorun yok ama ms değerini alamadım bi türlü, devrede  16f877 ile beraber 4mhz kristal kullanıyorum,anlamadım walla? yardımlarınızı bekliyorum ,program aşağıda

@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_on
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, XT_OSC

define osc 4

'-------------------------------------------------------------------


 TRISB = 1
 TRISC = 0
 TRISD = 0
 
 PORTB = 0
 PORTC = 0
 PORTD = 0
 
 ARTI VAR byte
 EKSI VAR byte
 
 ARTI = 5
 EKSI = 5
 
 BASLA:
 HIGH PORTB.1
 PAUSE ARTI
 LOW PORTB.1
 PAUSE EKSI
 IF PORTD.0 = 1 THEN 
 GOTO HIZARTIR
 ENDIF
 IF PORTD.1 = 1 THEN
 GOTO HIZAZALT
 ENDIF
 GOTO BASLA
 
 HIZARTIR:
 ARTI = ARTI + 1
 EKSI = EKSI - 1
 
 IF EKSI = 0 THEN
 EKSI =5
 IF ARTI = 10 THEN
 ARTI = 5
 ENDIF
 ENDIF
 PAUSE 500
 GOTO BASLA
 
 HIZAZALT:
 ARTI = ARTI - 1
 EKSI = EKSI + 1
  IF EKSI = 10 THEN
 EKSI =5
 IF ARTI = 0 THEN
 ARTI = 5
 ENDIF
 ENDIF
 PAUSE 500
 GOTO BASLA
 END

ete

Bu program normal devre yapılırsa istediğin gibi çalışır. İsis, görsel konularda daima yavaş kalır. Ona bakıp da program çalışmıyor yada yavaş çalışıyor diye hüküm yürütme bana kalırsa.

Yapılacak bir şey yok.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

uardal

ete hocam zaten normal program yaptım, 16f877 ye yükledim, moc3041 le lamba yaktım 40w 220 v, ama lamba 500ms de bir yanıp sönüyo, ayarda yapıyo ama 10 ms içinde değil 1 sn içinde duty cycle değerini ayarlıyo.anlamadım walla.

ete

O zaman senin sorunun HIZARTIR HIZALT bölümlerine koymuş olduğun 500 ms lik gecikmelerdir. Bunlar ancak tuşa basılınca devreye giren gecikmeler ama lambanın yanmasını sekteye uğratırlar.
Bu gecikmeleri 50 ms ya (denemek  için) sonucu gör.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

uardal

ete hocam sorunu buldum sanırım, programın başında artı=5 eksi= 5 yazmamdan kaynaklanıyor, o satırları silince normal frekansında çalışıyor ama bu seferde başlangıç değerini nasıl atarız onu bilmiyorum?

uardal

ETE hocan kusura bakma seninde başını ağrıttım ama garip bişi oldu, gerçek uygulamada port çıkışına led bağladığımda devre çok güzel çalışıyor,ilk haliyle parlaklık ayarı bile yapabiliyorum,ama moc3041 ve triakla 40w lamba yakmaya çalıştığımda 500 ms lik peryotlarla lamba yanıp sönüyor,aynı anda paralel led bağlayınca led normal çalışıyor,akıl erdiremedim walla?

bigbey

MOC3041 zerocrossing çalışır siz MOC3020 kullanabilirsiniz.
TA6R

uardal

evet hocam biraz önce onuda araştırdım, ondan olabilir ama ben samsunlyum burdaki parçacılara baktım hep moc3041 var zero crossing, tlp serisinide araştırdım bulamadım,artık bakcas bi çaresine ama buda benim için çok önemliydi.napcas bilmiyorum

bigbey

Özel mesaj olarak telefon ve yerimi yazdım. Benimle irtibat kurabilirsen. Bende moc3020 var ben size veririm.
TA6R

uardal

eyvallah abicim yarın uğricam inş.