如何确定Arduino中void loop()函数的一周期执行时间

如何确定Arduino中void loop()函数的一周期执行时间,第1张

在loop()的开头:

unsigned long starttime

unsigned long stoptime

unsigned long looptime

void loop()

{

starttime = millis()

//你的代码

stoptime = millis()

looptime = stoptime - starttime

}

looptime就是一个循环的时间

与代码长度无关,与编译完需要执行的指令条数有关

http://zhidao.baidu.com/link?url=oqNMcbYjPHTjUKEbozEIvpUCVrYMtNluk-WOStHkSb_ZnBzFJ7N0kTqEagXY5oQbUYZ3lCF9AtT23M42qFuEXq

去看看这个。

用到了Arduino 中的 millis()函数,这是个不断更新时间值的函数。

分别取不同的记录点,就可以得出不同记录点间的时间差。很方便。

但这个函数根本停不下来,哈哈。

可以,你说的”电脑编好的程序,烧给Arduino,然后Arduino成为一个独立个体进行代码下的活动“是对arduino编程和烧写,这个环节只要一次。arduino根据你的程序运行之后可以通过串口与电脑进行双向通信(前提是你的arduino程序里有串口通信代码)。与此同时,如果你用的arduino板上的芯片还有其他未用的串行通信接口或者I2C、SPI、CAN接口,也可以与传感器进行通信,这样,就可以将传感器的数据借助arduino传输至你的电脑了。

P.S.如果你要实现的任务不复杂,用arduino IDE进行编程、汇编是可以的,如果对时效要求较高,譬如想达到1Mbps的串口传输速率或者400kHz的I2C通信或者10KHz以上的方波输出或者尽可能短的程序执行周期,建议在Atmel Studio用gcc直接对avr进行编程。效率很轻松的能达到arduino IDE编译的程序的5到10倍强。

P.P.S.你的电脑上位机程序编写看你个人爱好,如果你之前学过编程有基础,可以用VB,C++,DELPHI.如果你的基础不是太牢并且想短时间内看到成果,推荐matlab或者labview。内部集成强大的数学分析工具,可以直接使用,譬如离散卡尔曼,FFT,等等等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8058171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存