| 程序看上去没有明显错误,确定硬件也没有问题吗,接线也都是正确的? |
1145421628 发表于 2020-3-11 19:40 小车不走肯定是程序死在某个地方了,安照你的代码问题应该出在ceju上面 示例代码可能有把ECHO初始化,然后超声波返回时对其进行改变,或者在中断中将其变化 看不到你得硬件很难分析;你的P20脚的电平必须在ceju();时01变化 sbit trig=P1^0; sbit echo=P2^0; //触发控制信号输入 sbit pwm=P2^6; //回响信号输出 你得这些接的什么脚?可能是硬件接法问题 你得分析P20脚的电平到底怎么变的 |
|
sbit echo=P2^0; //触发控制信号输入 void ceju(void) { while(!echo); //当echo为零时等待 TR0=1; //开启计数 while(echo); //当echo为1计数并等待 TR0=0; time=TH0*256+TL0; TH0=0; TL0=0; s=(time*1.7)/100; //单位cm } P2^0脚的模式是怎样的 后面没看到echo 的变化 这里两个while 如果echo 值没有一直01变化 就必然会产生一个while(1)的死循环;程序就会死在这里 |
| 我写了个小车移动的程序,里面没有关于超声波舵机的相关程序,只要插上超声波trig小车就不走,拔了走,求原因 |