I2C haberleşmesi

son mesajın üzerinden 3 ay falan geçmiş ama olsun :D cevap yazan arkadaşların bazıları bu uygulamaları gerçekleştirdiğini söylemiş. Ben ds1302 yada ds1307 ile bir saat devresi yapmak istiyorum. bu konu çoğu arkadaş tarafından merak edilen ama biraz bilgi gerektiren bir konu. Bu yüzden bu devreyi en basit nasıl yaparızın derdine düştüm. Umarım diğer arkadaşların da işine yarar. Küçük bir araştırma yaptım bulduğum devreler de hep ek özellik var (ısı nem basınç vs) ben bu kodları sadeleştirmeye çalışıyorum. Bu konuda bana yardımcı olursanız sevinirim. programı basic ile yazıyorum!
 
Arkadaşlar,
DS1307 kılavuzuna (datasheet) bakarsanız, chip yazmaçlarında bazı kullanılan bitler mevcut bu bitleri dikkate almazsnız, yada okumazsanız Durum düzelebilir. 0 adrsinde saniye mevcut. Saniyenin bit.7 kullanmamanız gerekiyor. Yani yapmanız gereken 0. yazmacı (register) okuduktan sonra bi7 yi elemek bit 6 ya kadar kısmı sayıya çevirmek.

Ben bunu şu şekilde hallettim.
' SAN : saniye yazmacından gelen veri
' SAN1 : ilk 4 bit, saniyenin birler kısmı
' SAN2 : ikinci '3' bit, saniyenin onlar kısmı (7.bit kullanılmıyor.
SAN1=SAN.0*1+SAN.1*2+SAN.2*4+SAN.3*8
SAN2=SAN.4*1+SAN.5*2+SAN.6*4

Entegre kılavuzundaki yazmaç ayarlarını okursanız halledersiniz.

KOLAY GELSİN.

SAN1=
 
h'59' = d'89'

tnen in dediği gibi.. Okuduğun saat verisi onlar ve birler basamağı diye ayrılmış.. Onlar basamağını 16 katı ile birler basamağının toplamını veriyor sana..

Aradığın cevap alttaki pdf de, sayfa 8 deki tabloda.. :)

http://datasheets.maxim-ic.com/en/ds/DS1307.pdf
 

Forum istatistikleri

Konular
129,844
Mesajlar
930,717
Kullanıcılar
452,697
Son üye
ozgurmaker

Yeni konular

Geri
Üst