arduino - 如果我在millis函数中使用uint64_t类型号可以吗?
问题描述
我正在使用 attiny 微控制器和 atmel 工作室。我正在millis
我的项目中使用该功能。
与millis函数相关的代码:
我正在使用这个经典代码:
starttimex = millis();
endtimex = starttimex;
while ((endtimex - starttimex)<=60000)
{
endtimex = millis();
// Action
}
我不希望该millis()
功能在 50 天后重置。我必须使用uint64_t
而不是unsigned long
.
我的问题:
这会造成任何麻烦吗?这种情况有缺点吗?缺点之一是内存大小。我知道这个。但是,我不知道其他缺点。
我不明白
timer0_overflow_count
图像中的变量。有必要这样做millis
吗?我应该
uint64_t
为图像中的所有unsigned long
变量做些什么?
谢谢
解决方案
如果您的时间间隔(示例代码中的 60000)不超过 的范围unsigned long
,那么您很好。
Millis() 函数不会重置,它只是翻转:)
(endtimex - starttimex)
即使在翻转期间,在无符号算术中也可以很好地计算。
推荐阅读
- flutter - 在表单字段中显示所选日期以进行颤动
- reactjs - 将事件侦听器添加到通过 API-REST 检索的 html 代码
- python - 获取数组列中至少有一个相同值的所有行
- assembly - 如何将 .a 库与 .asm 文件链接?
- css - 带有图标的按钮中文本的垂直对齐方式不正确
- java - Selenium Chrome 驱动程序 v92:无连接(在 v91 中一切正常)
- html - 如何将页脚移动到@page 中使用的边距底部空间的空间
- blazor - Blazor 父子 OnInitializedAsync 同时访问数据库上下文
- web-config - vb.net 项目缺少 web.release.config 和 web.debug.config
- sql - 选择不同的在 MS ACCESS *.mdb 数据库上不起作用