DS1302 Her 30 dk da led yakma

Başlatan mustafabat, 02 Mart 2015, 22:32:57

mustafabat

Merhaba benim bir sorum olacak. Evimde oda aydınlatmasını her 30 dk da bir yakım söndürmek istiyorum. Bunun için DS1302 den Saat bilgisini aldım. 30 dakika geçtiğini nasıl belirleyebilirim.

vitruvius

Merhaba, onun yerine işlemcideki timer'ı kullansanız daha kolay ve az masraflı olur.

ete

#2
DS1302 de saati bir kez ayarladınızmı sürekli zamanın kaydını tutar. Hatta size zaman ayarıda gerekmez. Cihazı ilk açtığınızda saati 00:00:00 olarak kurun ve aralıklı olarak yada her 1 sn de bir saati okuyun. size Saat:DAK:SN olarak bu bilgileri RTC verecektir.
DAK=30 olduğunda işiğinizi toggle yapın. Saat ayarını yeniden sıfırlayın olsun bitsin. En basit yolu budur.

Bu işlem RTC (DS1302) kullanmadan da basit şekilde yapılabilir. Hassasiyetide çok kötü olmaz. Bunun için TIMER1 sayacını kullanırsınız.
Sayacı her 500ms de bir kesme oluşturacak şekilde ayarlarsınız. 30 dak için 60 kesme oluşması gerekecek. kesmeleri sayarsınız yada her kesme oluştuğunda sayacınızı bir artırırsınız. 60 oluncada lambanızı yine toggle yaptırıp yeniden zaman saymaya başlarsınız. Üstelik bu iş için kesme açmaya da gerek yok. Yalnızca kesme bayrağını kontrol etmeniz yeterlidir.
Sanırım CCS de bu işi yapacaksınız . Bu konuda fazla bilgim yok ama işin teorisi böyle.

Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sadogan

Dakika 30 ve 0 olduğunda 30 dk geçmiştir.

RaMu

başlangıç_dakikası
bitiş_dakikası
değerlerini belirle değişken veya sabitlerini tanımla;
istersen sadece başlangıç dakikası verip
bitiş_dakikası=mod60(başlangıç_dakikası+30)
ile bitiş dakikasını bulabilirsin
daha sonra
ds1302 den okuduğun dakika değerine dakika_şuan dersek

if(dakika_şuan==başlangıç_dakikası) {lambayı yak}
if(dakika_şuan==bitiş_dakikası) {lambayı söndür}

bu şekilde 30dk boyunca yanık ardındaki 30dk boyunca sönük kalır.

(Tabiki programı yazarken Türkçe karakter kullanmamalısınız)
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mustafabat

Timer kullanmak mantıklı olacak diye düşünüyorum. Cevap yazan arkadaşlara teşekkür ediyorum.

ilker_32

Timer kullanabilirsin ama, RTC gibi olmaz. Zaman yapısını eş değer tutamazsın.