2013-01-10 22 views
4

我直接讀取/通過端口0x70和0x71寫RTC。根據手冊,星期幾字節將保持星期幾= 1的星期幾,數值範圍爲1到7.當我讀取我今天得到的字節4,即星期三。而當我閱讀RTC信息hwclock -r當天是星期四,這是正確的。RTC工作日字節

設置使用hwclock到其他日期的日期和我的代碼閱讀它並不反映在平日字節的變化。

這個問題仍然存在於所有系統。可能是什麼問題?

+0

@Mahmoud鋁Qudsi感謝重新標記,的確是一個不C問題:) – phoxis

+0

乾杯,隊友! :) –

回答

3

the OSDev Wiki(強調):

的RTC芯片能夠保持一週的當天的軌道。所有 它是在午夜增加它的「平日」寄存器,如果它到達7,則將它重置爲零。不幸的是,不能保證這個 寄存器被任何東西正確設置(包括當用戶 改變時間和日期使用BIOS配置屏幕)。 這是 完全不可靠,不應使用。

正確的方式來確定一週的當前日是從日期計算。

我相信這兩個回答你原來的問題,爲什麼用hwclock手動更改RTC的日期不顯示更改平日偏移(0x07)。如果它在午夜只是一個翻轉計數器,那就解釋了很多。

至於同時不使用系統時間的功能,如strptime之日起計算星期,看看這個StackOverflow的線程:C Program to find day of week given date

+0

很好的答案,謝謝你的文件。 – phoxis