Facebook RSS Feed
 

.NET Micro Framework: Gerçek Zaman Saati (RTC) Kullanımı

-Gerçek zaman saati (RTC) kullanarak mikrodenetleyici üzerinden o anki tarih ve saate ulaşabiliyoruz. RTC, mikrodenetleyicinin ilgili pinine saat pili bağlı olması durumunda ana besleme kesilse bile çalışmaya devam eder. Kullanımı ise son derece basittir. Ayrıca, Extended Timer kullanarak istenilen zamanda tetiklenecek alarmlar kurmamız da mümkündür.

Tarih ve Saati Ayarlamak

Uygulamanın herhangi bir noktasında zaman ayarı yapmak için önce bir DateTime değişkeni oluşturup istediğimiz zaman bilgisini bu değişkene aktaralım. Daha sonra Utility.SetLocalTime(zaman) metodunu kullanarak zamanı ayarlayabiliriz.

Öncelikle, uygulamanın namespace'leri arasına using System.Threading; ve using Microsoft.SPOT.Hardware; satırlarını ekleyelim.

Program.cs

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
 
namespace MFRTC
{
    public class Program
    {
        public static void Main()
        {
            //Bir datetime değişkeni oluşturup istenilen zamanı atayalım:
            DateTime zaman = new DateTime(2010, 12, 31, 23, 58, 00);
 
            //Cihazın tarih ve saatini, zaman değişkenine göre ayarlayalım:
            Utility.SetLocalTime(zaman);
 
            //Her saniye zamanı Immediate Window'a yazdıralım:
            while (true)
            {
                Debug.Print(DateTime.Now.ToString());
                Thread.Sleep(1000);
            }
        }
    }
}

Uygulamayı çalıştırğınızda, Visual Studio Immediate Window'da aşağıdaki çıkışları göreceksiniz:

12/31/2010 23:58:00
12/31/2010 23:58:01
12/31/2010 23:58:02
12/31/2010 23:58:03
12/31/2010 23:58:04
12/31/2010 23:58:05
12/31/2010 23:58:06
12/31/2010 23:58:07
12/31/2010 23:58:08

Timer ile Alarm Kurmak

-Extended Timer kullanarak belirlenen tarih ve saatte tetiklenecek bir alarm kurmamız mümkündür. Ayarlamaları yaptıktan sonra, belirlenen zamanda alarmın metodu çalışacaktır. Alarm tetiklendikten sonra yine belirlenecek aralıklarda timer metodu tekrar tetiklenebilir. (Saat 20:45'de x metodu çalışsın ve 10 dakikada bir tetiklensin gibi.) Örnek alarm uygulamamıza bir göz atalım:

Program.cs

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
 
namespace MFRTC
{
    public class Program
    {
        public static void Main()
        {
            //Güncel saati ayarlayalım:
            DateTime zaman = new DateTime(2010, 12, 31, 23, 58, 00);
            Utility.SetLocalTime(zaman);
            Debug.Print("Saat ayarlandi.");
 
            //Belirleyeceğimiz zamanda oluşacak bir Extended Timer oluşturalım:
            ExtendedTimer tmr =
              new ExtendedTimer(new TimerCallback(Alarm), //Belirlenen zamanda tetiklenecek metod
              null,                                       //Timer eventine object göndermek için
              new DateTime(2010, 12, 31, 23, 58, 10),     //Timer'ın tetiklenme anı
              new TimeSpan()); //                         //Timer'ın tekrarlanma ayarı
 
            //Main thread'i uyutalım:
            Thread.Sleep(Timeout.Infinite);
        }
 
        //Alarm zamanında tetiklenecek metod:
        private static void Alarm(object state)
        {
            Debug.Print(DateTime.Now.ToString());
            Debug.Print("Alarm!");
        }
    }
}

Saat ayarlanıp alarm saati geldiğinde, Visual Studio Immediate Window'da aşağıdaki satırları göreceğiz:

Saat ayarlandi.
12/31/2010 23:58:10
Alarm!




 
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