⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 car_follow.c

📁 单片机
💻 C
字号:
////左---中---右
//	PA0--PA1--PA2
//	压线:PAn = 0
//	离线:PAn = 1
//

#include "avr/io.h"
#include "util/delay.h"

unsigned int temp;

void sensor_init()
{
	DDRA &= ~0x0F;
	PORTA |= 0x08;
}

void car_follow()
{
	temp = PINA&0x07;
	switch(temp)
	{
		case 0x00:						// 全部压线,原转
			car_right1();
			while((PINA&0x07) != 0x05);
			break;
		case 0x01:						// 右中压线,右转
			car_right1();
			while((PINA&0x07) != 0x05);
			break;
		case 0x02:						// 左右压线,直走
			car_ahead();
			break;
		case 0x03:						// 右压线,  右转
			car_right1();
			while((PINA&0x07) != 0x05);
			break;
		case 0x04:						// 左中压线,左转
			car_left1();
			while((PINA&0x07) != 0x05);
			break;
		case 0x05:						// 中间压线,直行
			car_ahead();
			break;
		case 0x06:						// 左压线,  左转
			car_left1();
			while((PINA&0x07) != 0x05);
			break;
		case 0x07:						// 全不压线,直行
			car_ahead();
			break;
	}
}

void main()
{
	car_init();

	car_ahead();
	car_init();
	car_ahead();
	car_backward();
	car_left();
	car_right();
	car_left1();
	car_right1();
	car_left2();
	car_right2();
	car_stop();

	sensor_init();
	while((PINA&0x08)==0x08);
	while(1)
	{
		car_follow();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -