avatar_Burak

* DS3231 RTC KULLANIMI *

Başlatan Burak, 13 Eylül 2015, 15:05:02

F®T

Harbiden DS3231 sonucu mükemmel.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Burak

Evet Ferit abi , fiyat sakalasına göre CMOS atomik saat entegreleri ile yarışır halde ..

Burak
Ω Gens Una Sumus Ω

sonmoikan

Bu denli faydalı paylaşımlar için çok teşekkür ediyorum.

Proteus simülasyonu için DS3232 kullanılabilir.
ABDULLAH

Burak

Rica ederim ..

Simülasyonda denemedim fakat sadece ares şematiğe aktarım yapılması doğru değil çünkü DS3231 16 bacaklı bir yapıda üretilmiş iken , DS3232 20 bacaklı bir yapıya sahip .Bu açıdan dikkatli olunması gerekli .. 

Burak
Ω Gens Una Sumus Ω

sonmoikan

#19
Biraz daha geliştirerek ayarlı ve menülü hale getirdim. Kullanmak ve geliştirmek isteyen arkadaşlar için umarım faydası olur.
Burak Bey'in Dediği gibi simülasyonda kullanılan DS3232 Ares de DS3231 e göre uyumlu değil.
DS3231 in okuma kısmında simülasyonda sıkıntı olduğu için 500ms lik bir gecikme var onu gerçek devreye uygularken iptal edin.
Ana döngüdeki LCD_LED yanma süresini de 10 a çıkartın.

Burak Günay Kardeşime bilgi paylaşımı için tekrar teşekkür ediyorum.
ABDULLAH

Burak

Rica ederim ben teşekkür ederim .

Burak
Ω Gens Una Sumus Ω

Maxim

birşey soracaktım
önce bilgiyi bcd ye mi çeviriyoruz?

yani saati set edeceğiz diyelim 12:00:00 dan başlayacak
dec to bcd yapıp mı yazacağız bunu ds3231 e ?

sonra da lcd ye göndermeden önce
bcd to dec mi yapıyoruz ?

ete

Kavram kargaşasına yer vermemek için açıklayarak yazayım.
Saat :12, bu RTC içinde saat registerine önce kayıt edilmesi gerekiyor. Format ise şöyle;
İlk (0-3) bitlere saat_birler hanesi binary değeri Bu durumda oraya  2 yi kayıt edeceğiz Birler=%0010 oldu
4. cü ve 5.ci bit Saat değeri onlar hanesini gösterecek. Bu durumda Onlar=%0001 olacaktır.
6 bit ise saatin 12/24 formatında çalıştığını belirliyor. 24 için oraya 1 yazmak gerekiyor.
Onlar=%0101 oldu. 7. bit ise sabit sıfır olarak kalıyor.
Saat değeri BCD ye çevrilmiş oldu ama ekstradan birde 12/24 bitini eklemiş olduk.

Aynı bilginin RTC den okunduktan sonra kullanılır hale getirilmesi için;
Okunan Değer =%0101 0001
Birler hanesi için %0001 kısmından 1 i çekiyoruz. Birler=1
Onlar hanesi için %0101 kısmından ilk 2 bite bakıyoruz %01 olduğu için Onlar=1*10=10 oluyor. Saat=Onlar+Birler=12 olarak hesaplanmış oluyor.
Diğerleri de benzer şekilde hesaplanmaktadır.

Ete


Maxim

ete hocam teşekkürler
ben bu ilk mesajdaki kod içerisinde bulunan "haftanın günü" nü anlamadım
onun olayı nedir?

Q[3]=1  ' haftanin gunu

ete

Haftanın günleri olan, pazartesi salı,....pazar için bütün RTC ler numara kullanır. Mesela pazar=1 dir saat çalışırken pazardan pazartesiye geçişte haftanın günü=2 olur ve sende basit bir select case komutu ike hangi rakamın hangi güne denk geldiğini ayarlayarak gün isimlerini ekrana yazdırırsın.
Anlayacağın RTC, haftanın günlerini rakam olarak saklamaktadır.

Ete

Maxim

hocam anladığım kadarıyla rtc bunu kendi üretmiyor
yani en başta programlarken, gün ay yıl ve haftanın gününü biz registera yazıyoruz ve sonrasını o devam ediyor?

peki bunu kullanmasak ilerde sorun çıkarmı? hesap hatası yaparmı?
işte subat 28 çeker, bazı aylar 30 çeker sonra tarihte şaşmalar olurmu ilerde?

ete

Şaşma olmaz. Burada sanırım Haftanın hangi günü kaç numara olsun sana bıraktığı için başlangıç değerini kendi üretmiyor.
Sen haftanın gününe göre bir sayı veriyorsun ondan sonra o her gün değişiminde o sayıyı bir artırıp yerine kayıt ediyor. Sayı 9 olunca tekrar 1 e eşitliyor. Hepsi bu.
Burada önemli olan Ayın günü, ay ve yıl ile saat bilgilerinin doğru olarak verilmesidir. Sonrasında artık kendisi her şeyi üretiyor.

Ete

Maxim

hocam haftanın gününe hiç birşey yazmıyorum, boş geçicem yada 1 yazıcam
ilerde sıkıntı yaşarmıyım
daha net anlamak için tekrar soruyorum kusura bakmayınız

birde 9 sanırım 7 olacaktı?

ete

Pazar=1
Pazartesi=2
Salı=3
Çarşamba=4
Perşembe=5
Cuma=6
Cumartesi=7
Cumartesinden sonra yeni hafta kabul edildiği için Pazar=1' e dönülüyor. Bunu RTC otomatik yapıyor zaten.
Senin yapman gereken saate ayar verirken hangi günde isen onuda değer olarak vermen. Yok vermem yada veremiyorum diyorsan sorun olmaz O kısım yanlış çalışır ama sadece haftanın günü yanlış çalışır. Yok zaten kullanmıyorum diyorsan sorun olmaz. Diğer kısımlar doğru çalışır.
Unutma RTC nin doğru çalışması için ;
Saat bilgisi SAAT:DAKİKA:SANİYE olarak doğru şekilde RTC ye verilmelidir.
Ayrıca Tarih Bilgiside AYIN_GUNU:AY:YIL (15 şeklinde) doğru olarak girilmelidir.
Zaten bunları girince bir tek haftanın günü kalıyor onuda giriver bence.

9 yanlış olmuş 8 olacak idi. 7 den sonra 8 gelir. Ama bunu RTC kendi yapıyor zaten.

Ete


Maxim

teşekkürler
hocam son soru

gene ilk kodun içerisine bakacak olursak Q[0] saniye bilgisi var
bu, 0 dan 59 a kadar sayıyor

ben bunu kullanmayıp ekranda yanıp sönen ":" işareti çıkarmak istiyorum
yani 13:28 gibi

bu Q[0] sayısından nasıl yayarlanabilirimki ":" işareti her saniyede yanıp sönsün ekranda?

Powered by EzPortal