标题: 刚学会的MSP430F5529lp避障小车,感觉挺不错,顺便捞一手币 [打印本页]

作者: 小白一个呀    时间: 2021-8-5 14:25
标题: 刚学会的MSP430F5529lp避障小车,感觉挺不错,顺便捞一手币
这是我用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();
    }

}

屏幕截图 2021-08-05 141313.png (32.1 KB, 下载次数: 165)

屏幕截图 2021-08-05 141313.png

屏幕截图 2021-08-05 141244.png (85.32 KB, 下载次数: 170)

屏幕截图 2021-08-05 141244.png

避障.rar

723.26 KB, 下载次数: 34, 下载积分: 黑币 -5






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1