首先真正停止Arduino的程序执行是不可能的,一般是使用一个死循环的方式让程序不再执行下去。最基本的方法是用while循环,比如:
while(1){}
这样当程序执行到这一段代码后,就会在里面死循环,不再跳出来。
如果需要跳出也可以在while条件里面增加跳出的判断,比如可以增加从串口到数据后跳出,某一个信号脚被按下跳出等等
可以,你说的”电脑编好的程序,烧给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,等等等等。
(主程序暂停)(1、进入中断)
2、停止电机
3、该干啥干啥
4、启动电机
(5、退出中断)
(主程序继续执行)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)