智能车制作
标题:
新手求助!!大神们CCD的图像只有一半是怎么回事儿啊?
[打印本页]
作者:
一夜尘埃う
时间:
2014-1-29 15:13
标题:
新手求助!!大神们CCD的图像只有一半是怎么回事儿啊?
程序是照着蓝宙的写的是哪里弄错了吗?
void delay_200ns()
{
for(delay200ns=0;delay200ns<4;delay200ns++);
}
//***********SI=1*******//
// void SI_HIGH()
// {
// GPIO_SetBits(PTC,GPIO_Pin_11); //PC16置高
// }
// //**********CLK=1********//
// void CLK_HIGH()
// {
// GPIO_SetBits(PTC,GPIO_Pin_10); //PC14置高
// }
// //***********SI=0*******//
// void SI_DOWN()
// {
// GPIO_ResetBits(PTC,GPIO_Pin_11); //PC16置低
// }
// //**********CLK=0********//
// void CLK_DOWN()
// {
// GPIO_ResetBits(PTC,GPIO_Pin_10); //PC14置低
// }
//********CCD初始化程序***************//
void CCD_init()
{
ADC_InitTypeDef ADC_InitStruct_AO;
GPIO_InitTypeDef GPIO_InitStruct_SI_CLK;
//SI端口初始化
GPIO_InitStruct_SI_CLK.GPIOx = PTC;//PORTC
GPIO_InitStruct_SI_CLK.GPIO_InitState = Bit_SET;//初始化后为高
GPIO_InitStruct_SI_CLK.GPIO_IRQMode = GPIO_IT_DISABLE;//不使能中断
GPIO_InitStruct_SI_CLK.GPIO_Pin = GPIO_Pin_11;//16号引脚--暂定
GPIO_InitStruct_SI_CLK.GPIO_Mode = GPIO_Mode_OPP;//推挽输出
GPIO_Init(&GPIO_InitStruct_SI_CLK);
//CLK端口初始化
GPIO_InitStruct_SI_CLK.GPIOx = PTC;//PORTC
GPIO_InitStruct_SI_CLK.GPIO_InitState = Bit_SET;//初始化后为高
GPIO_InitStruct_SI_CLK.GPIO_IRQMode = GPIO_IT_DISABLE;//不使能中断
GPIO_InitStruct_SI_CLK.GPIO_Pin = GPIO_Pin_10;//16号引脚--暂定
GPIO_InitStruct_SI_CLK.GPIO_Mode = GPIO_Mode_OPP;//推挽输出
GPIO_Init(&GPIO_InitStruct_SI_CLK);
//AO端口初始化
ADC_InitStruct_AO.ADCxMap=ADC0_SE14_PC0;//ADC0-PTC0
ADC_InitStruct_AO.ADC_Precision=ADC_PRECISION_8BIT;//8BIT
ADC_InitStruct_AO.ADC_TriggerSelect=ADC_TRIGGER_SW;//软件触发
ADC_Init(&ADC_InitStruct_AO);
}
//********CCD启动程序1--用于曝光*********//
void CCD_start1()//用于曝光-----------------
{
unsigned char i;
SI_HIGH(); //SI=1
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
SI_DOWN(); //SI=0
delay_200ns();
CLK_DOWN(); //CLK=0
for(i=0;i<127;i++)
{
delay_200ns();
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
delay_200ns();
CLK_DOWN(); //CLK=0
}
delay_200ns();
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
delay_200ns();
CLK_DOWN(); //CLK=0
}
unsigned char CCD_Value;
//********CCD启动程序2--用于采集*********//
void CCD_start2(unsigned char * ImageData)
{
unsigned char i;
//SI信号---------------
SI_HIGH(); //SI=1
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
SI_DOWN(); //SI=0
delay_200ns();
//----------------------
//Delay 10us for sample the first pixel
/**/
for(i=0;i<250;i++)////更改250,让CCD的图像看上去比较平滑,
{
delay_200ns();
}
//Sampling Pixel 1
*ImageData =ADC_GetConversionValue(ADC0_SE14_PC0);//采集第一个像素
ImageData++;
CLK_DOWN(); //CLK=0
for(i=1;i<=127;i++)
{
delay_200ns();
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
delay_200ns();
//2~128
*ImageData =ADC_GetConversionValue(ADC0_SE14_PC0);//采集第一个像素
ImageData++;
CLK_DOWN(); //CLK=0
delay_200ns();
delay_200ns();
CLK_HIGH(); //CLK=1
delay_200ns();
delay_200ns();
CLK_DOWN(); //CLK=0
}
}
作者:
一夜尘埃う
时间:
2014-1-29 18:20
已经解决了- -,原来是程序问题
作者:
我们一起走过
时间:
2014-1-30 00:13
你那图像为撒那么低了,二值化过吗
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2