RTC de zaman Kontrolü

Başlatan mer_harun, 23 Ekim 2011, 14:55:52

mer_harun

Arkadaşlar DS1302 ve PIC 16F877 ve derleyici olarak CCS PIC C kullanıyorum
Hergün saat 9 de pin AO daki ledi 10 sn  yakacak nasıl bir kod yazabilirim
while(saat==9&&dakika==0 && saniye<11) şeklinde kod yazdım LCD de zamanım ilerlemiyor program kitleniyor galiba
nasıl bir kod yazsam?

mer_harun

zor sorumu bu arkadaşlar kimse cevap vermiyor.
Projede RTC kullandım.
Ondan zaman bilgisini alıp bu zaman bilgisine göre kontrol yapıp işlem yapıcam hepsi bu
burda da cevap alamayaksak boşuna kendimizi yorup soru sormayalım

sigmoid

sadece 1 saat bekleyip hemen isyan bayraklarını kaldırmışsın. Herkes her dakika forumu takip etmiyor.

Soruya gelince while yapısı kullandığın için sistemin kilitlenmesi doğaldır. Ben ledi yakmak için bir if bloğu, ledi söndürmek için bir if bloğu kullanmayı tercih ederdim.

//saat 9 da ledi yak.
if(saat==9&&dakika==0 && saniye==0)
{
   led=1;
}

//ledi saat 9.00.10 da söndür.
if(saat==9&&dakika==0 && saniye==10)
{
   led=0;
}

kolay gelsin

mer_harun

Arkadaşlar ustadın söylediği şekilde problem çözüldü.
Şimdi ise şöyle 2 problemim var:
1.PIC in A0 pinini giriş yapıp buton bağlayıp butona basıldıkça saati artırmak istiyorum ancak saat++ şeklinde artırma yaptığım zaman olmuyor.
saat++ yapıp rtc_set_datetime(24,10,11,2,saat,dakika) yaptığımda ise saniye her basışta sıfırlanıyor(saat istediğim gibi artıyor LCD de görebiliyorum)
bu problemi nasıl çözerim?

2.Bilgisayarın  saati ve RTC nin saati arasında bayağı fark ouyor RTC (LCD Displaye saati aktarıyorum) hep geride kalıyor ve fark hep açlııyor.
programdaki PIC deki ve PIC özellikleri(Proteusda ayarlanan) kristal değerleri hep aynı 4 MHZ ama bahsettiğim problem oluyor
neden?

teşekkürler.