创客百科

姿势共享,有节操无门槛参与的创客百科,创客动力之源 \ (^_^) /

用户工具

站点工具


note:spoony:arduino-delay

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

note:spoony:arduino-delay [2017/01/25 17:40]
note:spoony:arduino-delay [2017/01/25 17:40] (当前版本)
行 1: 行 1:
 +====== Arduino delay() ======
 +delay() 的参数接受由 0 到 4,​294,​967,​295
  
 +参数范围是4个字节即最大可以到4G个ms,但如果你直接这么写,那么实际只能截取其中的低两位字节的延时,也就是说如果直接在delay中加数字,最大只能延时约32s,这是因为arduino默认常整型(也就是delay里面的参数数字)是16位int(有些32位板子是32位int,具体可参阅官网文档),所以只能识别到16bit也就是最大32 000 ms左右(int为有符号数,-32,​000~+32,​000),如果想延时超过这个范围怎么办呢,必须在数字后面加入'​L'​或者'​l'​表明这是个有符号长整形数(4个字节,此时范围为-2Gms ~+2Gms),如果加入‘ul’或者‘UL’则代表无符号长整型数范围大一倍(此时范围为0~4Gms),而你写的3600,​000已经超过int范围了,所以需要用long int来装载,所以,你应该写成 delay(3600000L)
 +
 +想要更大的数字延时,就用UL就可以了。或者简单来说,如果delay中数字在32s以内,那么可以直接写,在32s以上大约24天以内,必须在数字后面加上L,在24天到48天左右,必须加上UL
note/spoony/arduino-delay.txt · 最后更改: 2017/01/25 17:40 (外部编辑)