Facebook RSS Feed
 

.NET Micro Framework’de Timer Kullanımı

Timer IconPeriyodik aralıklarla mikrodenetleyiciye işlem yaptırmak için timer nesnesini kullanırız. Burada kullandığımız timer kavramı, Windows uygulamalarında kullandığımızdan farklılık gösterir. Zira üzerinde çalıştığımız framework micro olduğundan, kullanabileceğimiz timer sayısı da donanımın özellikleriyle sınırlıdır. Timerların tetiklenmesi donanımsal olarak gerçekleşir. Her bir tick gerçekleştiğinde, uygulamanın o anki işleyişi durur, timer eventi işler ve tamamlandığında uygulama kaldığı yerden devam eder.

.NET MicroFramework’de iki tür timer kullanabiliriz:
 System.Threading.Timer ve Microsoft.SPOT.ExtendedTimer.

İlk Timer türü System.Threading.Timer’ı inceleyelim:

using System;
using System.Threading;
using Microsoft.SPOT;
 
namespace MFTimerUygulamasi
{
    public class Program
    {
        public static void Main()
        {
            Timer tmr =
                new Timer(new TimerCallback(Timer1Tick), // Timer tick eventinde tetiklenecek metod
                null// Gerekirse timer'a object göndermek göndermek için
                0, // İlk tick’in gecikmesi (1/1000 saniye)
                1000); // Diğer tick’lerin gecikmesi (1/1000 saniye)
 
            Thread.Sleep(Timeout.Infinite);
        }
 
        private static void Timer1Tick(object state)
        {
            Debug.Print(DateTime.Now.ToString("hh:mm ss"));
        }
    }
}

F5 ile uygulamayı çalıştırdığımızda, VisualStudio Immediate Window’da her saniye o anki saati göreceğiz.

12:17 25
12:17 26
12:17 27
12:17 28
12:17 29
12:17 30
12:17 31

Timer’ı durdurmak için Change komutunu kullanarak Due Time parametresine "-1" değer belirtin.

tmr.Change(-1, 1000);

Diğer Timer türü "Extended Timer" ı inceleyelim:

İkinci Timer türümüz Microsoft.SPOT.ExtendedTimer, bize ek özellikler sunuyor. ExtendedTimer kullanarak belirttiğimiz tarih / saatte event fırlatabiliriz yada kullanıcının saat dilimini değiştirmesi durumunda istediğimiz işlemleri gerçekleştirebiliriz. ExtendedTimer kullanarak temel bir alarm uygulaması oluşturalım:

using System;
using System.Threading;
using Microsoft.SPOT;
 
namespace MFTimerUygulamasi
{
    public class Program
    {
        public static void Main()
        {
            ExtendedTimer tmr =
                new ExtendedTimer(new System.Threading.TimerCallback(ExtTimer1), //Tick eventi
                null//Timer'a object göndermek için
                new DateTime(2009, 12, 31, 23, 59, 59, 0), //Tick eventinin oluşacağı an
                new TimeSpan()); //İlk tick eventinden sonraki eventlerin zaman aralığı
 
            Thread.Sleep(Timeout.Infinite);
        }
 
        private static void ExtTimer1(object state)
        {
            Debug.Print("Alarm!");
        }
    }
}

F5 ile uygulamayı çalıştırdığımızda, belirtilen gün ve saatte ExtTimer1 eventi çalıştırılacaktır.




 
Hoşgeldiniz!
Son güncelleme: 25.12.2016
-
Yeni Teknik Yazılar
Latte Panda İncelemesi
Turta IoT HAT İncelemesi
USB Gamepad Kullanımı
GPIO Kullanımı
VEML6075 UV Sensör Kullan...
-
İlgili Gruplar
.NET MF ve Gadgeteer FB Grubu
İst. IoT & Wearables Meet-up
-
 

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 1999 - 2017, Umut Erkal. Bu materyal, "Creative Commons Public Licence" ile sunulmuştur.
Kaynak göstererek ve ücretsiz olarak, aynı şartlar altında paylaşabilir ve kullanabilirsiniz. | Kullanım Sözleşmesi