完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uchar unsigned char #define uint unsigned int ***it A1=P1^0; ***it B1=P1^1; ***it C1=P1^2; ***it D1=P1^3; #define CIOL_A {A1=1;B1=0;C1=0;D1=0;} #define CIOL_B {A1=0;B1=1;C1=0;D1=0;} #define CIOL_C {A1=0;B1=0;C1=1;D1=0;} #define CIOL_D {A1=0;B1=0;C1=0;D1=1;} #define CIOL_S {A1=0;B1=0;C1=0;D1=0;} void Delay2Ms(int t); void DelayMs(int t); main() { int i=8,speed=3; for(i=8;i>0;i--)//顺时针转动 { CIOL_A; DelayMs(speed); CIOL_B; DelayMs(speed); CIOL_C; DelayMs(speed); CIOL_D; DelayMs(speed); } CIOL_S; for(i=8;i>0;i++)//逆时针转动 { CIOL_D; DelayMs(speed); CIOL_C; DelayMs(speed); CIOL_B; DelayMs(speed); CIOL_A; DelayMs(speed); } CIOL_S; } void Delay2Ms(int t) { while(--t); } void DelayMs(int t) { while(t--) { Delay2Ms(245); Delay2Ms(245);//1ms } } 为什么顺时针转动了1/4圈都不到就开始逆时针转动了,而且还一直逆时针转动。请问各位大神吗为什么会这样,求解释!!感谢 |
|
相关推荐
5个回答
|
|
貌似是个逻辑问题,
检查一下你的for循环。别的不说,你的第二个for循环是有问题的,i初始化为8,不管怎么+都是>0的,着解释了一直逆时针的现象。 至于前一个,你在修复后一个循环后,再试试,然后参考一下该步进电机的手册就明白了。 希望有帮助 |
|
|
|
|
|
|
|
非常感谢大家
|
|
|
|
谢谢,我想请问下,为什么我这个程序里没有while(1),但是它依然来回不停的正反转。谢谢
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
295 浏览 0 评论
949 浏览 1 评论
2341 浏览 5 评论
2661 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2473 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
511浏览 9评论
524浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
625浏览 6评论
499浏览 5评论
538浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-6 04:15 , Processed in 0.981290 second(s), Total 88, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191