bcd to binary mantığı

Başlatan uardal, 04 Ekim 2010, 13:28:49

uardal

herkese kolay gelsin, ds1307 ile bir uygulama yapmak isterken aşağıdaki kodu kullandım fakat tam olarakta mantığını bilmediğim için bir sorunla karşılaştım. saati ayarlama modundayken 9 dan 10 a geçerken sorun yok fakat 10dan 9 a doğru geri saydırdığımda 9 olması gereken değer 15 oluyor, aynı şey dakika kısmında 50 den 49 a geçerkende sayı 55 oluyor bu işin mantığı konusunda yardımcı olursanız sevinirim.


If UP=1 Then
    SAAT=SAAT+$01
        If SAAT.1=1 And SAAT.3=1 Then SAAT=SAAT+$10
        If SAAT.1=1 And SAAT.3=1 Then SAAT=SAAT-$0A
        If SAAT=$24 Then SAAT=$00
    EndIf
   
    GoSub ds1307_yaz
    DelayMS 20
    GoSub ds1307_oku
    Print At 1 , 1 , #SA2,#SA1,":",#D2,#D1,":",#S2,#S1," "
    DelayMS 20
 
    If DOWN=1 Then
    SAAT=SAAT-$01
    If SAAT.1=1 And SAAT.3=1 Then SAAT=SAAT+$10
    If SAAT.1=1 And SAAT.3=1 Then SAAT=SAAT-$0A
    If SAAT = $05 Then SAAT=$23
    EndIf
    GoSub ds1307_yaz
    DelayMS 20
    GoSub ds1307_oku
    Print At 1 , 1 , #SA2,#SA1,":",#D2,#D1,":",#S2,#S1," "
    DelayMS 20
   

uardal

down kısmındaki formulu ters çevirince sorun çözüldü :)..