RS 232 üzerinden saat ayarı

Başlatan Ferhat Özdemir, 15 Şubat 2011, 14:12:56

Ferhat Özdemir

Merhaba arkadaşlar.

Pic 16f628 ve ds1302 ile bir saat uygulaması yapıyorum.
Seri kesme üzerinden komut gondererek gerekli işlemleri yapıyorum. Ama takıldığım bazı noktalar var.
Mesela ds1302 nin tarih saat ayarini nasil guncelleyebilirim.

Şöyle bir komut satırı ile işlem yaptırmak istiyorum.

RS232 den şu parametreleri gondererek tarihi veya saati nasil guncelleyebilirim.

T:15.02.2011: Yaptığımda tarih guncellemesi
S.14:09:58.  Yaptığında ise saat güncellemesi yapmak istiyorum.

rtc_set_datetime(gun,ay,yil,?,saat,dakika); // DS1302 güncellemesi

Not: ? olan yer hangi değer ?

Ben bir kac deneme yaptim. mesela tek karakterli 2 değerini alabiliyorum ama, 12 almak istediğimde takiliyorum. bunun için sanırım char kullanıp, işlem sonunda bunu sayisal değere çevirip işlemem gerektiğini biliyorum. Ama beceremedim.
Bu konuda fikirlerinizi belirtirseniz sevinirim.

Kolay gelsin.

ibrsel

"?" işaretli olan yer "Day" bilgisi..Yani hatfanın kaçıncı günü olduğuna dair bilginin saklandığı değişken. "1" ise pazartesi,"2" ise Salı ... gibi..

Ferhat Özdemir

Alıntı yapılan: ibrsel - 15 Şubat 2011, 17:32:27
"?" işaretli olan yer "Day" bilgisi..Yani hatfanın kaçıncı günü olduğuna dair bilginin saklandığı değişken. "1" ise pazartesi,"2" ise Salı ... gibi..

Cevabın için teşekkürler. Yanlız hafta konusunda 1 Pazar. 2 Pazartesi ....... 7 Cumartesi olarak biliyorum. Çünkü Türkiye dışındaki bir çok yerin hafta başlangıcı Pazar olarak kabul ediliyor.

Yanılıyorsam düzeltin.

Ferhat Özdemir

Arkadaşlar mantığı kurdum fakat, terminalden gonderdiğim sayıları nasıl girmem gerekiyor bilmiyorum. Terminalden her gonderdiğim sayi birler basamagi oluyor. Fakat ben onlar hanesini gondermede sıkıntı yaşıyorum.

Yani belirttiğim değişkene kesmeden aldiğim değeri atayip yazabiliyorum ama, alma işlemi her gelen karakter için gerçekleştiğinden 12 diyene kadar sadece 1 değerini aliyor .

Umarım anlatabildim.

ibrsel

Alıntı YapArkadaşlar mantığı kurdum fakat, terminalden gonderdiğim sayıları nasıl girmem gerekiyor bilmiyorum. Terminalden her gonderdiğim sayi birler basamagi oluyor.

Öncelikle bir dizi tanımlamalısın..Bilgisayardan gelen veriyi bu dizi içerisine atıp değişkenlere oradan aktarmalısın..
Örneğin:
"T:15.12.11" ( baştaki T gelen bilginin tarih bilgisi olduğunu gösteriyor. 15.12.11 )
Öncelikle bilgisayardan "T" bilgisini gönder.PIC e de bundan sonra gelen verinin tarih bilgisi olacağını ve bunu 6 karekterlik bir diziye kaydetmesi gerektiğini söyle.

dim Tarih[5] as byte    (tarih isminde 6 karekterlik dizi oluştur.

Tarih[0] ,Tarih[1]  --- Bu iki değişken gün bilgisini oluşturacak,Yani yukarıdaki örnekteki "15" değeri.
Tarih[2], Tarih[3]  --- Bu iki değişken ay bilgisini oluşturacak,Yani yukarıdaki örnekteki "12" değeri.
Tarih[4], Tarih[5]  --- Bu iki değişken yil bilgisini oluşturacak,Yani yukarıdaki örnekteki "11" değeri.

..Pek açıklayıcı oldum mu bilmiyorum ama umarım bir fikir edinmişsindir..
..İyi çalışmalar..