gpt4 book ai didi

assembly - RTC 星期几字节

转载 作者:行者123 更新时间:2023-12-02 19:58:27 24 4
gpt4 key购买 nike

我通过端口0x70和0x71直接读取/写入RTC。根据手册,工作日字节将保存星期几,Sunday=1,值范围从 1 到 7。当我读取今天得到的字节 4 时,即星期三。而当我使用 hwclock -r 读取 RTC 信息时,这一天是星期四,这是正确的。

使用 hwclock 将日期设置为其他日期并使用我的代码读取它不会反射(reflect)工作日字节的更改。

此问题在所有系统中都存在。可能是什么问题?

最佳答案

来自the OSDev Wiki (强调):

The RTC chip is able to keep track of the current day of the week. All it does is increment its "Weekday" register at midnight and reset it to zero if it reaches 7. Unfortunately there is no guarantee that this register was ever set correctly by anything (including when the user changes the time and date using the BIOS configuration screen). It is entirely unreliable and should not be used.

The correct way to determine the current day of the week is to calculate it from the date.

我相信这既回答了您最初的问题,也回答了为什么使用 hwclock 手动更改 RTC 日期不会显示工作日偏移量 (0x07) 的更改。如果这只是午夜的滚动计数器,那就可以解释很多了。

至于在不使用 strptime 等系统时间函数的情况下根据日期计算星期几,请查看此 StackOverflow 线程:C Program to find day of week given date

关于assembly - RTC 星期几字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14252744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com