主函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#include
#include
#include
#include
#include "stm32f10x_tim.h"
#include "include.h"
#include "Image.h"
#define YUANBAN
void RCC_Configuration(void); //RCC复位与时钟控制器
void GPIO_Configuration(void); //GPIO 通用输入输出
void USART_Configuration(void);//USART 通用同步异步接收发射端
void NVIC_Configuration(void);//NVIC 嵌套中断向量列表控制器void EXIT_configuration();
void IO_Init(void);
void Timer3_configuration();
void Timer1_configuration();
//void delay_ms(u16 nms);
extern u8 KEY;//extern 外部变量
u16 PixelCounter; //用于像素计数u8 datareadyflag;
u8 data[R][C];
u8 * Data;
#define White 244
#define Black 0
#define STRM 500
#define STRL 330
#define STRR 670
//#define STRE 1200
u8 InterruptLine=0;
u8 TrueLine;
u8 DataReadyFlag=0;
u8 BlackLineData[R];
u8 Left[R]={1}; //左转
u8 Right[R]={C-1}; //右转
//uchar Mid[R]={R/2};
u8 LastFieldMid1=80; //中线
u8 LastFieldMid2=80;
u8 ThresholdValue=130;//,fazhi,界限值s16 Err = 0;
s16 Errlast = 0;
s16 Errd = 0;
s16 Errdlast = 0;
s16 Erri = 0;
s16 Roadtype = 0;
s16 Errhistory[8]={0};
u16 Steerangle = 0;
const u16 SlampeLine[R]= //采样行,校准纵向畸变{
56,//
57,//
58,//
59,//
60,//
61,//121.5
62,//118
64,//114.5
66,//111
68,//107.5
70,//104
72,//100.5
74,//97
76,//93.5
79,//90
82,//86.5
85,//83
88,//79.5
91,//76 94,//72.5 97, //69 101,//65.5 105,//62 110,//58.5 115,//55 120,//51.5 126,//48 134,//44.5 142,//41 150,//37.5 158,//34 166,//30.5 174,//27 182,//23.5cm 190,//20cm 204,//16.5cm 212,
220,//13cm 228,
238 //9.5cm
};
main()
{
RCC_Configuration();;//系统时钟设置
delay_init(72); //延时初始化
IO_Init();
GPIO_Configuration(); //GPIO 通用输入输出
NVIC_Configuration();//NVIC 嵌套中断向量列表控制器
USART_Configuration();//USART 通用同步异步接收发射端
Timer3_configuration();
Timer1_configuration();
EXIT_configuration();
CMOS1_PWDN=0;
CMOS1_RST=0;
delay_ms(20);
CMOS1_RST=1;
InitI2C0();
while(1!=Cmos7670_init()); //CMOS初始化
Exit_Init(GPIOA, GPIO_Pin_0, GPIO_Mode_IPU, EXTI_Trigger_Falling, 2, 5); //VSYNC
delay_ms(1000);
TIM3->CCR2 = 504;
GPIO_WriteBit( GPIOB,GPIO_Pin_0, 1);
GPIO_WriteBit( GPIOB,GPIO_Pin_1, 1);
delay_ms(1000); //4s
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
SpeedContiol(570);
while(1)
{