智能车制作

标题: 急!希望大家帮帮忙!关于起跑线 [打印本页]

作者: a8500891    时间: 2010-7-18 08:35
标题: 急!希望大家帮帮忙!关于起跑线
我用的干簧管是常开的!希望大家帮帮忙~~~希望能指出我的错误之处~本人感激不尽!!我已经想不到其他办法了!!
一头接高电平,一头接PB0。
在主函数写了    if(PORTB_PB0==1 )   
{
        i++;
        if(i==2)
           {
                  PWME = 0x00;   
           }
}   
但是车走一下就停下来了!为什么会这样?
我又用了ECT的中断试了一下,车也是运行一下就停了

void ECT0_Init(void)            

{                          

  TSCR2=0x06;                   //禁止溢出中断,分频系数64(24/64MHz)
TIOS_IOS0=0;                  //通道0为输入捕捉
TCTL4=0x01;                   //捕捉上升沿
TIE_C0I=1;                     //通道0输入捕捉中断允许
TSCR1=0x80;                   //使能定时器
}
#pragma CODE_SEG NON_BANKED    //定时器通道0输入捕捉中断         
void interrupt 8 Timer0_Onput(void)
{
TFLG1_C0F=1;      //清中断标志位
Input_Num++;
if(Input_Num==2)
{
PWME = 0x00;     //pwm 禁止
         for(;;)
   {   }
  }     

}
作者: 88weig    时间: 2010-7-18 11:18
回复 1# a8500891


    你在(i++)这句话加一下段延时,防止误触发就可以了,试试
作者: a8500891    时间: 2010-7-18 16:47
本帖最后由 a8500891 于 2010-7-18 17:02 编辑

回复 2# 88weig


    为什么要防止误触发的?是不是因为单片机刚启动PB的电位会改变?我已经在if前面加了重新定义了PB的输出了!
谢谢你!!我等下试试你的办法!等下就过去实验室了~~还有什么办法没?


很烦呀!!!!!
作者: 88weig    时间: 2010-7-18 21:38
回复 3# a8500891


    因为你小车在检测起跑线的时候干簧管或者霍尔都是有个先后的,所以在检测时可能会有这种现象发生,加延时防止检测到信号就停止,试试吧
作者: mixspace    时间: 2010-7-18 22:11
干簧管用法不对
建议你看看单片机引脚的结构
作者: jiang1101    时间: 2010-7-18 22:24
赞成楼上的
作者: wilsonzane    时间: 2010-7-19 00:12
B口要设置为上拉的
作者: iamstar24    时间: 2010-7-19 13:01
回复 1# a8500891


    不知你是硬件上拉还是软件上拉,另外应该是B口为低电平代表干簧管接通,高电平代表干簧管断开吧?。。。楼主弄反了貌似
作者: a8500891    时间: 2010-7-19 13:13
谢谢各位!已经解决了终点线问题了!我接了个上拉电阻!再加了个延时就解决了!!!谢谢谢谢~~~
作者: 88weig    时间: 2010-7-19 20:59

作者: junjun1990    时间: 2011-4-30 15:36
你们讨论对我太有用了~~谢谢各位!




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2