TI小车中国基础版---走迷宫代码

最近参加了学校组织的TI小车培训,经过两三天的培训,可算写出来了,此车采用的是八路循迹模块,根据地图实际情况可以稍加修改,我这里采用的是右手法则,十字右转,T型右转直走加左转直行,直走加右转右转。代码如下(需要的头文件在TI官网有,我也会发在资源里)
#include <stdio.h>
#include “msp.h”
#include “…/inc/Clock.h”
#include “…/inc/UART0.h”
#include “…/inc/Reflectance.h”
#include “…/inc/PWM.h”
#include “…/inc/Motor.h”
#include “…/inc/JN_LCD.h”
#define RED 0x01
#define GREEN 0x02
#define BLUE 0x04
#define yellow 0x03
#define sky blue 0x06
#define white 0x07
#define pink 0x05
uint8_t Data;
uint16_t L = 4500;
uint16_t R = 4500;

void Port2_Init(void){
P2->SEL0 = 0x00;
P2->SEL1 = 0x00;
P2->DS = 0x07;
P2->DIR = 0x07;
P2->OUT = 0x00;
}

void Port2_output(uint8_t data){
P2->OUT=data;
}

void main1(void)
{
uint8_t Data;
UART0_Initprintf();
Clock_Init48MHz();
Reflectance_Init();
while(1){
Data = Reflectance_Read(1000);
printf("%02x\n",Data);
Clock_Delay1ms(10);
}
}

void main(void){
uint8_t Data =0x00;
UART0_Initprintf();
Clock_Init48MHz();
Reflectance_Init();
Motor_Init();
Port2_Init();
while(1){
Data = Reflectance_Read(500);
switch(Data){

                        case 0x37://0011 0111
                        case 0x3e://0011 1110
                        case 0x17://0001 0111
                        case 0x1d://0001 1101
                        case 0x3f://0011 1111
                        case 0x1f://0001 1111
                        case 0x8e://0001 1110
                        case 0x07://0000 0111
                        case 0x0b://0000 1011
                        case 0x0d://0000 1101
                        case 0x0e://0000 1110
                        case 0x0c://0000 1100
                        case 0x0a://0000 1010
                        case 0x09://0000 1001
                        case 0x05://0000 0101
                        case 0x03://0000 0011
                        case 0x08://0000 1000
                      case 0x04://0000 0100
                        case 0x02://0000 0010
                        case 0x01://0000 0001
                            Port2_output(0x05);
                            Motor_Right(6000,6000);
                            Clock_Delay1ms(300);
                            break;



                        case 0xcc://1110 1100
                        case 0xdc://1101 1110
                        case 0xbc://1011 1110
                        //case 0xfe://1111 1110
                        case 0x7c://0111 1100
                        case 0x78://0111 1000
                        case 0xc8://1110 1000
                        case 0xfc://1111 1100
                        case 0xf8://1111 1000
                        case 0x70://0111 0000
                        case 0xb0://1011 0000
                        case 0xd0://1101 0000
                        case 0xe0://1110 0000
                        case 0xc0://1100 0000
                        case 0xa0://1010 0000
                        case 0x90://1001 0000
                        case 0x50://0101 0000
                        case 0x30://0011 0000
                        case 0x80://1000 0000
                        case 0x40://0100 0000
                        case 0x20://0010 0000
                        case 0x10://0001 0000
                            Port2_output(0x06);
                            Motor_Left(6000,6000);
                            break;



                        case 0xff://1111 1111
                        case 0xfe://1111 1110
                        case 0xef://1110 1111
                        case 0xee://1110 1110
                        case 0x7e://0111 1110
                        case 0x7f:
                            Motor_Right(6000,6000);
                            Clock_Delay1ms(300);
                            break;

                        default:
                            Port2_output(0x02);
                            Motor_Forward(L,R);

                             break;

                        case 0x00:
                            Motor_Right(6000,6000);



    }
}

}

上一篇:JS 杂项


下一篇:流水灯