智能车制作
标题:
急!希望大家帮帮忙!关于起跑线
[打印本页]
作者:
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