完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我自己编的一个程序,想让舵机正转45度延时10ms后反转45度然后停下来,可是舵机一直重复刚才的动作,怎么让它执行一次就停下来。
#include #include #define uint unsigned int #define uchar unsigned char ***it pwm1=P1^0; unsigned char i,j,t1,t2; void delay500us(uint x) //误差 -0.868055555556us //0.5ms { unsigned char a,b; while(x--) for(b=1;b>0;b--) for(a=227;a>0;a--); } void pwm360zhengzhuan(t1) {for(i=t1;i>0;i--) //输出1ms的PWM波 { pwm1 = 1; //舵机先转向-45度 delay500us(2);//1MS pwm1 = 0; delay500us(38);//19MS } delay500us(10 );//延时5MS for(j=10;j>0;j--)// { pwm1 = 1; //延时后 舵机转向0度 delay500us( 3 );//1.5MS pwm1= 0 ; delay500us( 37 );//18.5MS } delay500us(10); pwm1=0; } void pwm360fanzhuan(t2) {for(i=t2;i>0;i--) //输出1ms的PWM波 { pwm1 = 1; //舵机先转向+45度 delay500us(4);//1MS pwm1 = 0; delay500us(36);//19MS } delay500us(10 );//延时5MS for(j=10;j>0;j--)// { pwm1 = 1; //延时后 舵机转向0度 delay500us( 3 );//1.5MS pwm1= 0 ; delay500us( 37 );//18.5MS } delay500us(10); pwm1=0; } void main() { pwm360zhengzhuan(20); delay500us(20); pwm360fanzhuan(30); pwm1=0; } |
|
相关推荐
6个回答
|
|
|
|
|
|
加个while(1),不就停了
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
这个…菜鸟到什么程度啊,估计步进电机的程序拷贝的吧。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
652 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
696 浏览 1 评论
1264 浏览 0 评论
588 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1190 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11597 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 21:18 , Processed in 0.528733 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号