完善资料让更多小伙伴认识你,还能领取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),但是它依然来回不停的正反转。谢谢
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
882 浏览 0 评论
1196 浏览 1 评论
2574 浏览 5 评论
2910 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2770 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1236浏览 3评论
221浏览 2评论
495浏览 2评论
402浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
483浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-31 17:07 , Processed in 0.957392 second(s), Total 53, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号