bildigim kadariyla RTC ler otomatik olarak yaz saati ve kış saati uygulamalari icin iç saatlerini 1 saat ileri yada geri almıyolar. (inşallah alıyolardır ama alıyor olsalar bile kuralını bilmeliyim) RTC saatini ileri yada geri aldırma işini MCU ya yaptırmak icin yaz ve kıs saati uygulamalarının yıla göre hangi ay, gün ve saatte olduğunun kuralı nedir
örn subat ayı için, 4 e tam bölünen yıllarda subat ayı 29, tam bölünmeyen yıllarda 28 çeker. bu bilgi zaten rtc icinde kayitli. peki yaz ve kış saatine geçişte kullanılan kural nedir.
if(Ay==Mart && Gun>0x24 && Gun_Adi==Pazar && Saat==1 && Dakika== 0 && Saat_Ayarlama_Biti == 1)
{
Saat_Artir();
Saat_Ayarlama_Biti = 0;
...
...
...
}
if(Ay==Ekim && Gun>0x24 && Gun_Adi==Pazar && Saat==2 && Dakika== 0 && Saat_Ayarlama_Biti == 1)
{
Saat_Azalt();
Saat_Ayarlama_Biti = 0;
...
...
...
}
if(Ay!=Ekim && Ay!=Mart) Saat_Ayarlama_Biti =1;
kural ve işlem tamamdir. tşkler ise...
İleri saate gece 2 den 3 e geçerek girildi bu yıl. Eskiden 1 den 2 ye idi. Benim yaptığım bir saat programında da eskisi gibi tanımlı :) Menüden ayarlanabilir olmalı.
@ise
"if(Ay!=Ekim && Ay!=Mart) Saat_Ayarlama_Biti =1;" Bu satırı niçin kullandığınızı anlayamadım. Aradaki işaret veya mı olacaktı? Anlam veremedim. Açıklarsanız seninirim.
işlemciler saniyede binlerce işlem yaptığı için aynı satıra bir daha girmesini istemedim saniye==0 dediğimizde işlemci yaklaşık 40-50 saat ileri alıyor bunu engellemek için kullandım ekim veya mart ayı harici her zaman için ayar yapılabilir hale gelmiş oldu bu aylarda ise sadece 1 sefer ayar mümkün
@ise
Hocam güzel bir program mantığı kurmuşsunuz. Açıklama için teşekkürler.