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,等等等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)