|
这是我用MSP430F5529lp写的避障小车程序,用了两个红外避障,跑起来感觉还行,里面用到了库函数,5529的库函数也分享出来了。
单片机源程序如下:
#include <msp430.h>
#include<msp430f5529.h>
#include <USER/driverlib.h>
#include "USER/gpio.h"
#define CPU_F ((double)8000000) //外部高频晶振8MHZ
#define delay_us(x) __delay_cycles((long)x)
#define delay_ms(x) __delay_cycles((long)(x*1000.0))
/**
* main.c
*/
void stop(void)//停车
{
TA0CCR1=800;
TA0CCR2=800;
TA0CCR3=800;
TA0CCR4=800;
}
void go(void)//前进
{
TA0CCR1=800;
TA0CCR2=600;
TA0CCR3=800;
TA0CCR4=600;
}
void tui(void)//后退
{
TA0CCR1=600;
TA0CCR2=800;
TA0CCR3=600;
TA0CCR4=800;
}
void zuo(void)//左转
{
TA0CCR1=800;
TA0CCR2=700;
TA0CCR3=800;
TA0CCR4=600;
}
void you(void)//右转
{
TA0CCR1=800;
TA0CCR2=600;
TA0CCR3=800;
TA0CCR4=700;
}
void zuo1(void)//大幅度左转
{
TA0CCR1=800;
TA0CCR2=800;
TA0CCR3=800;
TA0CCR4=550;
}
void you1(void)//大幅度右转
{
TA0CCR1=800;
TA0CCR2=550;
TA0CCR3=800;
TA0CCR4=800;
}
void bizhang(void)
{
GPIO_getInputPinValue (GPIO_PORT_P4, GPIO_PIN1);
GPIO_getInputPinValue (GPIO_PORT_P4, GPIO_PIN2);
if(GPIO_INPUT_PIN_HIGH==GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN1)&&GPIO_INPUT_PIN_HIGH==GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN2))//都没有检测到障碍
{
go();
}
else if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue (GPIO_PORT_P4, GPIO_PIN1) && GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue (GPIO_PORT_P4, GPIO_PIN2))//同时检测到障碍
{
stop();
delay_ms(1000);
tui();
delay_ms(2000);
you();
delay_ms(1200);
go();
}
else if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN1))//P4.1检测到障碍(左检测到障碍)
{
zuo1();
delay_ms(800);
go();
}
else if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P4, GPIO_PIN2))//P4.2检测到障碍(右检测到障碍)
{
you1();
delay_ms(800);
go();
}
else stop();
}
int main(void)
{
bizhang();
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1SEL|=(BIT2+BIT3+BIT4+BIT5);
P1DIR|=(BIT2+BIT3+BIT4+BIT5);
P1OUT&=~(BIT2+BIT3+BIT4+BIT5);
GPIO_setAsInputPin (GPIO_PORT_P4, GPIO_PIN1);
GPIO_setAsInputPin (GPIO_PORT_P4, GPIO_PIN2);
TA0CCR0=1000;
TA0CCTL1=OUTMOD_7;
TA0CCTL2=OUTMOD_7;
TA0CCTL3=OUTMOD_7;
TA0CCTL4=OUTMOD_7;
TA0CTL=TASSEL_2+MC_1;
while(1)
{
bizhang();
}
}
|
-
-
-
-
避障.rar
723.26 KB, 下载次数: 34, 下载积分: 黑币 -5
评分
-
查看全部评分
|