Merhaba arkadaşlar..
Kurtlara ve benim gibi kuzulara bir sorum olacak. Yardım severlere teşekkürler..
16F84 ile CCS C'de 3 saatlik bekleme sonrasında komutlarımı işlemek için:
delay_ms(10800000);
delay_ms komutunu bunun gibi kullanırsam 3saatlik bekleme yapabilirmiyim?
Birde, bu 3 saatlik zaman, her zaman 3 saat olarak kalırmı? yani geri kalma ya da ileri gitme gibi sorunlar olabilirmi?
Çok teşekkür ederim.
Merhaba arkadaşlar..
Kurtlara ve benim gibi kuzulara bir sorum olacak. Yardım severlere teşekkürler..
16F84 ile CCS C'de 3 saatlik bekleme sonrasında komutlarımı işlemek için:
delay_ms(10800000);
delay_ms komutunu bunun gibi kullanırsam 3saatlik bekleme yapabilirmiyim?
Birde, bu 3 saatlik zaman, her zaman 3 saat olarak kalırmı? yani geri kalma ya da ileri gitme gibi sorunlar olabilirmi?
Çok teşekkür ederim.
Hocam tabi ki o komutla olmaz çünkü eğer f1 tusuna bakıp delay_ms komutunun özelliklerine bakarsaniz maksimum 65535 yazilacagini görürsünüz.
Çözüm altdadir.
delay_ms( )
Syntax:
delay_ms (time)
Parameters:
time - a variable 0-65535(int16) or a constant 0-65535
Note: Previous compiler versions ignored the upper byte of an int16, now the upper byte affects the time.
Returns:
undefined
Function:
This function will create code to perform a delay of the specified length. Time is specified in milliseconds. This function works by executing a precise number of instructions to cause the requested delay. It does not use any timers. If interrupts are enabled the time spent in an interrupt routine is not counted toward the time.
The delay time may be longer than requested if an interrupt is serviced during the delay. The time spent in the ISR does not count toward the delay time.
16f628 (16f84 yerine çok rahat kullanılabilir), timer1 ile 1 ms veya 50 veya 200 ms lik (kesme oluşturacak şekilde) interruptlar oluşturabilirsin. Bu şekilde 3 sn de kaç tane interraupt olacaksa bunu tespit edip saydırırsın. MCU'ya (3 sn. yi beklerken) boşta kalan zamanlarında başka işler yaptırtabilirsin.
16f628 (16f84 yerine çok rahat kullanılabilir), timer1 ile 1 ms veya 50 veya 200 ms lik (kesme oluşturacak şekilde) interruptlar oluşturabilirsin. Bu şekilde 3 sn de kaç tane interraupt olacaksa bunu tespit edip saydırırsın. MCU'ya (3 sn. yi beklerken) boşta kalan zamanlarında başka işler yaptırtabilirsin.
Profesyonel bir cevap vermişsiniz ellerinize saglik.
Daha hassas uygulamalar için 32.768 KHZ lik bir kristali pice bağlayarak (kendi kristal kısmına değil (TMRO) ile ilgili kısma olmasi lazim) , interruptlarla çok hassas zaman sağlarsınız.
Profesyonel bir cevap vermişsiniz ellerinize saglik.
Daha hassas uygulamalar için 32.768 KHZ lik bir kristali pice bağlayarak (kendi kristal kısmına değil (TMRO) ile ilgili kısma olmasi lazim) , interruptlarla çok hassas zaman sağlarsınız.
Teşekkür ederim. CCS konusunda baya deneyimim var. 2007 ve 2008 de 4 dönem de eğitimini verdim. Manualini bir arkadaşım için tercüme ettim. Faydası olur diye CCS kitabı yazarı Serdar Çiçek e de gönderdim (Sağolsun o benden önce kitabının referans listesine eklemiş beni, i2c konusunda). Gerçi 5 yıldır ilgilenemedim ama arada KK üzerinde ihtiyacı olana vaktim oldukça yardım ettim. Umarım faydası olur.
Bu ara S7-300 PLC öğrenmeye çalışıyorum. PLC öğrenmek kolay da SCADA ve OPC server konularına daha ağırlık vereceğim. Bu konularda bilginiz varsa ara sıra soru sorabilirim
Profesyonel bir cevap vermişsiniz ellerinize saglik.
Daha hassas uygulamalar için 32.768 KHZ lik bir kristali pice bağlayarak (kendi kristal kısmına değil (TMRO) ile ilgili kısma olmasi lazim) , interruptlarla çok hassas zaman sağlarsınız.