#include "msp430.h"
#include "gdata.h"
#include "car motor.h"
#define Left1 (P3IN&BIT0) //P3_4接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
#define Left2 (P3IN&BIT1) //P3_5接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
#define Right1 (P3IN&BIT2) //P3_6接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
#define Right2 (P3IN&BIT3) //P3_7接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清除震荡标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
Clock_Init();
while(1)
{
P3DIR&=~(BIT0+BIT1+BIT2+BIT3);
run();
if(Right1 == 1 && Left2 == 0) //右边检测到黑线
{
left();
}
else if(Left2 == 1&& Right1 == 0) //左边检测到黑线
{
right();
}
}
}
咱这是个很简单的循迹程序,遇到问题,程序执行run()语句之后就不下去了。。。
不会跟随传感器变化而变化,传感器输出高电平4.7V,低电平接近0V。。
left();run()这几个运动函数在其他头文件没考过来,应该是没问题对的,因为把run换成left或者right都是对的,但就是对传感器没反应。。。
求助啊。。
|