中级会员
- 积分
- 394
- 威望
- 201
- 贡献
- 109
- 兑换币
- 116
- 注册时间
- 2013-3-19
- 在线时间
- 42 小时
- 毕业学校
- 金职院
|
程序是照着蓝宙的写的是哪里弄错了吗?
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
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|