Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arm 阿杜伊诺计时器到期_Arm_Arduino_Atmel_Atsam3x - Fatal编程技术网

Arm 阿杜伊诺计时器到期

Arm 阿杜伊诺计时器到期,arm,arduino,atmel,atsam3x,Arm,Arduino,Atmel,Atsam3x,我是arduino的新手(事实上是编程)。我想用arduino来完成我的学术项目。在查看数据表(Atmel提供的SAM3X8E数据表)时,我遇到了计时器,据说所有计时器都是32位计数器。在再次计算到0x0000之前,它们一直计算到0xFFFF。我有点困惑。它们不应该计数到0xFFFFFF(在归零之前),因为它们是32位计数器。我认为16位计数器是一个可以一直计数到0xFFFF的计数器。 也许我问的很傻,但请解释一下 提前谢谢 37.6功能描述 ,37.6.2 32位计数器 ,数据表第873页我在

我是arduino的新手(事实上是编程)。我想用arduino来完成我的学术项目。在查看数据表(Atmel提供的SAM3X8E数据表)时,我遇到了计时器,据说所有计时器都是32位计数器。在再次计算到0x0000之前,它们一直计算到0xFFFF。我有点困惑。它们不应该计数到0xFFFFFF(在归零之前),因为它们是32位计数器。我认为16位计数器是一个可以一直计数到0xFFFF的计数器。 也许我问的很傻,但请解释一下

提前谢谢

37.6功能描述 ,37.6.2 32位计数器
,数据表第873页

我在数据表或Atmel的应用说明中找不到任何反驳您观察的内容。这让我相信两件事中的一件:

  • 数据表中的说明不完整。所描述的行为仅适用于较低的字,并且完整的32位计时器按顺序从0x00000000递增到0xFFFFFF,溢出仅注册底部16位

  • 行为完全如数据表中所述,软件可以将计时器计数器设置为0x00010000和0xFFFFFF(包括0x000000000和0xFFFFFF)之间的值,以便在计时器以0x0000ffff溢出之前允许一次较长的时间


  • 测试将告诉您哪些行为是实际行为。

    也许我的库可以帮助您:

    请同时阅读此帮助文件:


    我知道这不完全是你想要的,但最终结果可能是你想要的。

    你在他们的文档中发现了一个bug,但他们修复了它

    在当前版本的数据表中,第860页第36.6.2节对此进行了说明,更为合理:


    “当计数器达到值2^32-1并传递到零时,会发生溢出……”

    您可能希望在数据表中包含您看到的位置。为了兼容性,Arduino可能已将其SAM3X8E函数的大小与ATmega相同。