资源描述:
《201434待测试程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include"common.h"#include"OLED.h"#defineTSL1401_SI(x)LPLD_GPIO_Output_b(PTE,10,x)#defineTSL1401_CLK(x)LPLD_GPIO_Output_b(PTE,12,x)voidgpio_init(void);voidpwm_init(void);voidadc_init(void);voidput_ccd_data_one(void);voidput_ccd_data_two(void);voidpit_init(void);voidpit0_i
2、sr(void);voidccd_single_collection(uint8*ccd_data);voiddelayns();voider_zhi_hua(void);uint8CCD_Line();voiddianji(void);voiddelay(uint32t);uint32angle_to_period();//舵机转角转换函数uint8CCD_Line(u8*a,u8*b);uint8CCD_Line0();ADC_InitTypeDefadc_init_struct;GPIO_InitTypeDefgpio_initst
3、ruct;FTM_InitTypeDefftm_init_struct;PIT_InitTypeDefpit0_init_struct;uint8value=0;//中断标志uint8ccd_data[128]={0};//ccd单次采集数据储存数组uint8ccd_data_one[128]={0};//ccd二值化后的数据uint8ccd_data_index[128]={0};uint16temp=0;//中间变量,查看道路趋势uint16servo_left=5500;//左面舵机极限值,300Hz,中值为4450,left-55
4、00,uint16servo_right=3300;//右面舵机极限值uint8presum=64;//上次的中心值uint8erpresum=64;//上上次的uint8errpresum=64;//上上上次的值uint8lost=0;u8a0[]="OLED_Display";u8a,b;voidmain(void){//u8i;//u8j=30;uint8k;OLED_Init();//OLED初始化gpio_init();//CCD硬件初始化adc_init();//ADC初始化pwm_init();//脉冲初始化LPLD_GPI
5、O_Output_b(PTA,16,0);printf("errorr");OLED_Clear();OLED_ShowString(0,0,a0);OLED_Refresh_Gram();pit_init();//定时中断delay(50000);while(1){//delay(1000);ccd_single_collection(ccd_data);for(k=0;k<128;k++){ccd_data_index[k]=ccd_data[k];}put_ccd_data_one();dianji();//printf("e
6、rrorr");//delay(50000);//value=0;/*put_ccd_data_one();for(i=0;i<128;i++){if((ccd_data_one[i]==0xef)){OLED_DrawPoint(i,j,0);//白的清盘}if((ccd_data_one[i]==0x22)){OLED_DrawPoint(i,j,1);//黑色的就填充}}OLED_DrawPoint(CCD_Line(&a,&b),j,1);OLED_ShowNum(25,40,a,3,16);OLED_ShowNum(80,
7、40,b,2,16);OLED_ShowNum(5,40,CCD_Line(&a,&b),2,16);OLED_Refresh_Gram();j--;if(j==2)j=30;value=0;*/}}//舵机转角转换函数uint32angle_to_period(){uint32pulse_width=4450+(servo_left-servo_right)/35*(64-CCD_Line(&a,&b));if(pulse_width>=5500)pulse_width=5500;elseif(pulse_width<=3300)pul
8、se_width=3300;returnpulse_width;}/********搜索直线1*********/uint8CCD_Line(u8*a,u8*b){uint8i=0;uint8