Сверяване на времето

Сверяването на времето става през етернет при получаване на запитване със следния формат: /tHHMMSSDDMMYY където HH - час, MM - минути, SS - секунди, DD - ден, MM - месец, YY - година. След получаването на заявка от такъв вид се пристъпва към сверяване на часовника по следния начин:

        // СПРИ БРОЯЧА НА ЧАСОВНИКА
Soft_I2C_Start();      // започни комуникацията
Soft_I2C_Write(0xA0);  // обърни се към PCF8583, адрес на PCF8583 от даташита
Soft_I2C_Write(0);     // започни от адрес 0 (конфигурационно място в паметта)
Soft_I2C_Write(0x80);  // спри брояча
Soft_I2C_Stop();       // спри комуникацията

        // ЗАПИШИ НОВИТЕ СТОЙНОСТИ В ЧАСОВНИКА
Soft_I2C_Start();      // започни комуникацията
Soft_I2C_Write(0xA0);  // обърни се към PCF8583, адрес на PCF8583 от даташита
Soft_I2C_Write(0);     // започни от адрес 0 (конфигурационно място в паметта)
Soft_I2C_Write(0x80);  // спри брояча
Soft_I2C_Write(0);     // запиши 0 в паметта за стотните
Soft_I2C_Write(Dec2Bcd(atoi(strSS)));  // запиши зададените секунди в паметта
Soft_I2C_Write(Dec2Bcd(atoi(strMM)));  // запиши зададените минути в паметта
Soft_I2C_Write(Dec2Bcd(atoi(strHH)));  // запиши зададените часове в паметта
Soft_I2C_Write((Dec2Bcd(atoi(strDD))&0x3F)|((Dec2Bcd(atoi(strYY))&0x03)<<6));
// запиши датата и годината в паметта
Soft_I2C_Write(Dec2Bcd(atoi(strMO)));  // запиши месеца в паметта
Soft_I2C_Stop();       // спри комутикацията

        // ПУСНИ ОТНОВО БРОЯЧА НА ЧАСОВНИКА
Soft_I2C_Start();      // започни комуникацията
Soft_I2C_Write(0xA0);  // обърни се към PCF8583
Soft_I2C_Write(0);     // започни от адрес 0
Soft_I2C_Write(0);     // пусни брояча
Soft_I2C_Stop();       // спри комуникацията



Deyan Levski 2013-06-22