Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

timer ile kronometre

Başlatan superconductor, 08 Eylül 2012, 16:03:13

superconductor

Merhabalar..
Çizgi izleyen robotum için en iyi tur zamanını görebileceğim bir program yazayım dedim visual studio'da.
timer komponenti interval olarak milisaniye değer alıyor ama 1 milisaniyede tetiklenecek şekilde kurduğumda 1000 milisaniyeyi gerçek zamanda 15 saniyeden fazla bir zamanda tamamladı.Windows rtos değil ondan dedim.Hane azaltıp milisaniye yerine salise göstertebilirim ve timerida bir şekilde kalibre edip salilse için intervala 10 yerine atıyorum 6 yazabilirim..peki bu kod daha performanslı bir pc de sapıtırmı?şu an anakartım yanık olduğundan denemelerimi atom işlemcili netbookta yapıyorum..visualde gerçek zaman çekebileceğim bir sınıf varmı?
private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = minutes.ToString();
            label2.Text = seconds.ToString();
            label3.Text = miliseconds.ToString();
            miliseconds++;
            if (miliseconds > 999)
            {
                miliseconds = 0;
                seconds++;
            }

        }

berat23

birşey merak ettim,0 ladıktan sonra 1 arttırmanın mantığı nedir?

superconductor

#2
milisaniyeyi sıfırlayıp saniyeyi bir arttırıyorum sonrada saniye 59'u geçince saniye sıfırlanıp dakika bir artıyor.

mesaj birleştirme:: 08 Eylül 2012, 22:52:49

Biraz daha araştırdıktan sonra çözümü buldum belki timer konusunda benim gibi problem yaşayan arkadaşlara yardımcı olur.timer komponenti ile çok hassas çalışmak mümkün değilmiş.zaten kronometre sınıfı varmış libraryde.

Stopwatch kronometre =new Stopwatch();
       double milisecond = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan delta_time = kronometre.Elapsed;
            milisecond = delta_time.TotalMilliseconds;
            milisecond = Math.Floor(milisecond);
            label1.Text=milisecond.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled=true;
            timer1.Start();
            kronometre.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            kronometre.Stop();
        }