完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单独超声波测距的时候好使,单独舵机转动的时候也好使,但是把这两个程序组合到一起的时候就不好使了,求各位兄弟姐妹帮我看看程序是哪里出错了。
#include"stc12c5a60s2.h" #define uint unsigned int #define uchar unsigned char ***it trig=P0^2; ***it echo=P3^2; ***it led0=P0^0; ***it pwm=P2^5; bit flag; float distance; uchar count; uchar jd; uint time,timeH,timeL; void delayms(uint x) { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void delay20us() { uint i; for(i=0;i<4;i++); } void duoji(uchar x) { jd=x; count=0; EA=1; ET1=1; TH1=0xfe; TL1=0x33; //0.5ms TR1=1; } void main() { TMOD=0x11; led0=0; while(1) { EA=0; trig=1; delay20us(); trig=0; while(echo==0); flag=0; EA=1; EX0=1; TH0=0; TL0=0; TF0=0; TR0=1; delayms(20); TR1=0; if(flag==1) { time=timeH*256+timeL; distance=1.085*time*0.017; if(distance<10) { duoji(2); delayms(5000); duoji(3); delayms(5000); duoji(4); delayms(5000); duoji(3); } else { led0=1; } } if(flag==0) { distance=0; } } } void exter() interrupt 0 { timeH=TH0; timeL=TL0; flag=1; EX0=0; } void t0() interrupt 1 { TH0=0; TL0=0; } void t1() interrupt 3 { TH1=0xfe; TL1=0x33; if(count标识 pwm=1; //确实小于,PWM输出高电平 else pwm=0; //大于则输出低电平 count=(count+1); //0.5ms次数加1 count=count%40; //次数始终保持为40 即保持周期为20m } |
|
相关推荐
7个回答
|
|
"不好使"是什么情况,描述一下吧
|
|
|
|
转动速度太快了吧,超过了超声波检测的频率。
|
|
|
|
舵机不转了。我的想法是超声波测距小于10厘米的时候舵机转三下,但是把超声波测距程序,和舵机转动程序融合在一起的时候就不好使了。
|
|
|
|
舵机不转了。我的想法是超声波测距小于10厘米的时候舵机转三下,但是把超声波测距程序,和舵机转动程序融合在一起的时候就不好使了。
|
|
|
|
舵机不转了。我的想法是超声波测距小于10厘米的时候舵机转三下,但是把超声波测距程序,和舵机转动程序融合在一起的时候就不好使了。
|
|
|
|
怎么解决呢
|
|
|
|
根本不转呐,
|
|
|
|
只有小组成员才能发言,加入小组>>
879 浏览 0 评论
1194 浏览 1 评论
2572 浏览 5 评论
2908 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2768 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1220浏览 3评论
219浏览 2评论
494浏览 2评论
401浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
483浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-28 10:17 , Processed in 1.197121 second(s), Total 89, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号