logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom, PCF8583 i godzina jako 4 zmienne

Villen 21 Kwi 2010 11:04 849 4
REKLAMA
  • #1 7986248
    Villen
    Poziom 21  
    Witam,

    standardowy sposób odczytu godziny z PCF'a wygląda mniej więcej tak:

    Cytat:
    I2cinit
    I2cstart
    I2cwbyte 162
    I2cwbyte 2
    I2cstart
    I2cwbyte 163
    I2crbyte Sekunda , Ack
    I2crbyte Minuta , Ack
    I2crbyte Godzina , Nack
    I2cstop


    Program taki zapisuje odczytane wartości sekund, minut i godzin do zmiennych Sekunda, Minuta i Godzina.

    Ja potrzebuję jednak rozbić godziny i minuty na liczby oznaczające dziesiątki godzin, jedności godzin, dziesiątki minut i jednostki minut. Kombinuję z tym od wczoraj, ale nie mogę nic wymyślić ;(
    Czy ktoś mógłby mi podsunąć choćby małą podpowiedź jak to ugryźć?
  • REKLAMA
  • #2 7986274
    tadzik85
    Poziom 38  
    Zamień na BCD i wówczas zapisuj.

    Bascom ma gotowe instrukcje w tym celu.
  • REKLAMA
  • #3 7986295
    Villen
    Poziom 21  
    No dobrze, więc tak:

    Cytat:

    I2cinit
    I2cstart
    I2cwbyte 162
    I2cwbyte 2
    I2cstart
    I2cwbyte 163
    I2crbyte Sekunda , Ack
    I2crbyte Minuta , Ack
    I2crbyte Godzina , Nack
    I2cstop

    Godzina = Makebcd(godzina)
    Minuta = Makebcdminuta)


    Ale to dalej są dwie zmienne, tylko w przypadku kiedy będzie np godzina 8, to wartość zmiennej Godzina wynosiłą będzie 08.
    A ja chciałbym mieć to w dwóch zmiennych, np:

    godziny_dziesiatki = 0
    godziny_jednosci = 8

    i minuty analogicznie...
  • REKLAMA
  • #4 7986497
    wicy
    Poziom 22  
    Było już sporo przykładów na forum. Sam to wyłuskałem z przykładów konwersji temperatur z DS18b20. Np. cos takiego:
    
    godzina = Makebcd(godzina) 
    Jednosci = Temp And &B00001111 
    Shift godzina , Right , 4 
    Dziesiatki = godzina 
    
  • #5 7987802
    Villen
    Poziom 21  
    A da sie jeszcze prościej, przed chwilą wykoncypowałem ;)

    Minuty_dziesiatki = Minuty / 10
    Minuty_jednosci = Minuty mod 10
    


    Godziny i sekundy analogicznie ;)

    Dzięki za pomoc!
REKLAMA