本帖最后由 huminqin233 于 2015-3-24 19:46 编辑
我写了一个电机限位的程序,电机在一根轴上来回走,其中有一段通过限制时间和堵转电流来检测电机的位置如下:while(Timeout(150)&&Current_test());
Timeout()是通过定时器0中断实现定时;堵转电流检测是通过电机与地之间串一个电阻,当电机受力增大时电流增大然后通过P16脚对电压进行AD转换,当检测到的值大于一个阈值时返回0。原理就是这样。
现在的问题是,这两个程序分开测试都是好的,比如while(Timeout(150));或while(Current_test());但把他们和在一起测试就不行,应该是一直死在while上,debug时程序也一直死在AD程序里(keil4软件本身貌似也不行,调试时老是无故跑飞。。。所以死在AD里也不能百分百确定是AD转换的问题)
SO,哪位大侠能分析下这是什么问题?
我想到过会不会是定时中断时间太短导致AD转换到一半就跳出,然后就回不去了,我把定时器调到50ms也不行,估计是定时器和AD转换某些地方冲突了。。。 |