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

Problem z zapisem daty do PCF8583 [C]

jaros85 13 Cze 2010 21:00 876 0
REKLAMA
  • #1 8186888
    jaros85
    Poziom 20  
    Witam napisałem program do obsługi PCF8583 w C wszystko gra oprócz daty.
    Godzinę i minutę konwertuje z dec na bcd takim kodem:

    unsigned char konwersja(unsigned char dec)
    {
        unsigned char bcd;
        bcd=(dec/10)<<4;
        bcd+=dec%10;
        return bcd;
    } 


    Natomiast zapis ustawień wygląda tak:
    //Zapis do ukladu
    void zapis(char godz,char min,char dz,char mc,char rok)
    {
    char temp;
    
    TWI(0x02,0x00);            //Kasowanie sekund
    
    temp=konwersja(min);
    TWI(0x03,temp);           //Zapis minut <- Jest OK
    temp=konwersja(godz);
    TWI(0x04,temp);          //Zapis godzin <-jest OK
    temp=konwersja(mc);
    TWI(0x06,temp);          //Zapis miesięcy <-działa tylko do liczby 9
    rok=konwersja(rok);
    dz=konwersja(dz);
    rok=rok<<6;
    dz += rok;
    TWI(0x05,dz);             //Zapis dni i lat <-dni tylko do 9 po ustawieniu lat występuje problem z interpretacją
    }
    
    void TWI (char adres,char dane)
    {
    START_TWI();
    WRITE_TWI(0xA2);
    WRITE_TWI(adres);
    WRITE_TWI(dane);
    STOP_TWI();
    }
    


    Wiem że jest problem z konwersją już próbowałem kilku sposobów i nie za bardzo mi to idzie.
  • REKLAMA
REKLAMA