Pic ile 3 saatlik zaman ayarı.

ocomrun

Üye
Katılım
5 Eyl 2008
Mesajlar
74
Puanları
1
Konum
izmir
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.
 

Cevaplar için teşekkür ederim(!!!)
 
Piclerde zamanlama hassasiyeti osilator ile keskinlik kazanir. Kullanacaginiz osilaor secimine dikkat etmeniz gerekir

Sent from my LG-D802 using KontrolKalemi.Com Forumu mobile app
 
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.
Availability:All devices
Requires:#use delay
Examples:#use delay (clock=20000000)

delay_ms( 2 );


void delay_seconds(int n) {
for (;n!=0; n- -)
delay_ms( 1000 );
}
Example Files:ex_sqw.c
Also See: delay_us(), delay_cycles(), #use delay








void mainin hemen altında i değişkenini tanımla
unsigned int i=0;

/// sonra gerekn yere bunu yaz.

for(i=1;i<=180;i++)
{
delay_ms(60000); // 1dakikaya karsilik gelir , 180 kere islem yapilir.
}



cok hassas degildir ne kadar hassasiyet lazim
 
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.
 
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
 

Peki kendi osc kısmına birşey bağlamayacakmıyım? Örneğin, 4 mHZ osc bağladım, herikisi birden mi çalışıyor? Nasıl?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…