打印

简单的小车循迹程序求助~谢谢啦·!

[复制链接]
楼主: 包子lxy
手机看帖
扫描二维码
随时随地手机跟帖
21
包子lxy|  楼主 | 2013-8-8 23:50 | 只看该作者 回帖奖励 |倒序浏览
1988020566 发表于 2013-8-8 23:48
建议你使用中断,虽然效率降低但是操作更精确了。

恩恩,,中断是可以的。。但是我实在想不通我这程序错哪了==

使用特权

评论回复
22
1988020566| | 2013-8-8 23:52 | 只看该作者
包子lxy 发表于 2013-8-8 23:50
如果没有信号,那么就在while(1)里面无限循环run,如果一旦有了检测信号,就对应执行相应函数,直到检 ...

你使用人工触看看,给它一个信号试试

使用特权

评论回复
23
1988020566| | 2013-8-8 23:52 | 只看该作者
包子lxy 发表于 2013-8-8 23:50
恩恩,,中断是可以的。。但是我实在想不通我这程序错哪了==

我也不知道,你把程序都贴上来 让大家帮你看看的。

使用特权

评论回复
24
包子lxy|  楼主 | 2013-8-8 23:52 | 只看该作者
1988020566 发表于 2013-8-8 23:52
你使用人工触看看,给它一个信号试试

人工触发光电传感器?

使用特权

评论回复
25
1988020566| | 2013-8-8 23:53 | 只看该作者
包子lxy 发表于 2013-8-8 23:52
人工触发光电传感器?

你给他一个低电平不就行了么?

使用特权

评论回复
26
包子lxy|  楼主 | 2013-8-8 23:55 | 只看该作者
包子lxy 发表于 2013-8-8 23:52
人工触发光电传感器?

用手触发也没用额。。我的四路电压比较器出来四路还接了led,一旦有信号输出led会亮的。。。我现在就是比较器输出没问题(电压4.7V,输出信号也会随着手的遮挡改变(由led看出)),但就是电机输出io没反应。。。

使用特权

评论回复
27
dirtwillfly| | 2013-8-9 09:43 | 只看该作者
包子lxy 发表于 2013-8-8 22:00
@dirtwillfly 求助~!

昨天回帖不是很方便,问题解决了吗?

使用特权

评论回复
28
包子lxy|  楼主 | 2013-8-9 10:40 | 只看该作者
dirtwillfly 发表于 2013-8-9 09:43
昨天回帖不是很方便,问题解决了吗?

木有:'(

使用特权

评论回复
29
dirtwillfly| | 2013-8-9 10:45 | 只看该作者
包子lxy 发表于 2013-8-9 10:40
木有

run()是个什么样的程序?你贴上来看看。是不是这个程序和你自己的程序配合的不好?

使用特权

评论回复
30
包子lxy|  楼主 | 2013-8-9 10:51 | 只看该作者
dirtwillfly 发表于 2013-8-9 10:45
run()是个什么样的程序?你贴上来看看。是不是这个程序和你自己的程序配合的不好? ...

#define Left_moto_go    P1DIR|=BIT0+BIT1+BIT2+BIT3;P1OUT|=BIT0+BIT2;P1OUT&=~(BIT1+BIT3)
#define Right_moto_go   P1DIR|=BIT4+BIT5+BIT6+BIT7;P1OUT|=BIT4+BIT6;P1OUT&=~(BIT5+BIT7)

void run(void)
{
         Left_moto_go ;
         Right_moto_go ;
}

但是如果把run()换成其他的什么left,right,执行的就是left或right。。所以我觉得可能这几个运动程序本身没问题。。。就是不能进入传感器判断。、、

使用特权

评论回复
31
包子lxy|  楼主 | 2013-8-9 10:52 | 只看该作者
dirtwillfly 发表于 2013-8-9 10:45
run()是个什么样的程序?你贴上来看看。是不是这个程序和你自己的程序配合的不好? ...

表情是 ; P1OUT。。。复制过来变表情了。。

使用特权

评论回复
32
dirtwillfly| | 2013-8-9 11:05 | 只看该作者
看不出有什么问题。你在run()处设置好断点,然后看看各个IO引脚的状态和电平情况,看是否和你判断的一致

使用特权

评论回复
33
包子lxy|  楼主 | 2013-8-9 11:15 | 只看该作者
dirtwillfly 发表于 2013-8-9 11:05
看不出有什么问题。你在run()处设置好断点,然后看看各个IO引脚的状态和电平情况,看是否和你判断 ...

恩恩,我再试试好了

使用特权

评论回复
34
包子lxy|  楼主 | 2013-8-10 16:18 | 只看该作者
dirtwillfly 发表于 2013-8-9 11:05
看不出有什么问题。你在run()处设置好断点,然后看看各个IO引脚的状态和电平情况,看是否和你判断 ...

我发现,if(Right1 ==0x01 && Left2 == 0x00)                //右边检测到黑线
      {                         
        left();             
      }

如果我的if语句判断是上面这样,就没有反应。。。
如果是
if(Right1 ==0x00 && Left2 == 0x00)                //右边检测到黑线
      {                         
        left();             
      }

就会做出判断。。。难道只能识别第一个低电平?

使用特权

评论回复
35
dirtwillfly| | 2013-8-10 16:22 | 只看该作者
包子lxy 发表于 2013-8-10 16:18
我发现,if(Right1 ==0x01 && Left2 == 0x00)                //右边检测到黑线
      {                         
        left();             

这样啊,建议你检查下你的硬件电路

使用特权

评论回复
36
包子lxy|  楼主 | 2013-8-10 16:41 | 只看该作者
dirtwillfly 发表于 2013-8-10 16:22
这样啊,建议你检查下你的硬件电路

检查430的硬件吗~?还是传感器的?传感器的我一直用万用表测着呢。。输出高低和实际是吻合的,而且也用电阻把输出高的5V拉倒了3.6V左右,(不用电阻似乎430内部有泄放电路可以直接降到3V逻辑)

程序方面。。我发现,无论如何,if语句里面与的两个信号都不能有高位,必须全部是0,不然就会没反应。。如果都是0的话,也不用满足同时两个是0的关系。。。只要一个是0,马上就执行if里面的语句了。。。好奇葩:'(

使用特权

评论回复
37
dirtwillfly| | 2013-8-10 16:59 | 只看该作者
包子lxy 发表于 2013-8-10 16:41
检查430的硬件吗~?还是传感器的?传感器的我一直用万用表测着呢。。输出高低和实际是吻合的,而且也用电 ...

你检查下430的引脚,该是高电平的时候电压多少?

使用特权

评论回复
38
dirtwillfly| | 2013-8-10 17:00 | 只看该作者
看你的描述,似乎430的引脚一直是低电平

使用特权

评论回复
39
包子lxy|  楼主 | 2013-8-10 17:21 | 只看该作者
dirtwillfly 发表于 2013-8-10 17:00
看你的描述,似乎430的引脚一直是低电平

如果设成输出状态的话高电平3.3V,低电平0.2V。。如果设成输入状态的啊,io在悬空状态的时候是0.8V左右,还有就是我的P2.2口在不作任何操作的情况下一直是3.3V的高位(其他口不作操作是低位),就算把P22设成输出模式,悬空的时候,也是3.3v,设成高位输出正常3.3,设成低位输出的时候电压还是有1V

使用特权

评论回复
40
dirtwillfly| | 2013-8-10 20:45 | 只看该作者
P22低位输出的时候电压好高啊
传感器给msp430传输信号时,该是高电平时,引脚上是高电平吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则